사용자 로그인 기능 테스트를 위해 아래의 스펙 코드가 있습니다.헤드리스 크롬이 장착 된 GitLab CI에서 Rspec 테스트가 실패했습니다.
feature "User login" do
context "using browser", :js => true do
before(:each) do
visit "/"
first(:link, "Login", visible: :any).click
end
scenario "with valid details" do
...
# rest of code.
end
end
end
내 로컬 컴퓨터에서 헤드리스 크롬으로 잘 작동합니다. 여기 내 Capybara javascript_driver
설정은 spec_helper.rb입니다.
Capybara.register_driver :headless_chrome do |app|
options = Selenium::WebDriver::Chrome::Options.new(
args: %w[headless disable-gpu no-sandbox]
)
Capybara::Selenium::Driver.new(app, browser: :chrome, options: options)
end
Capybara.javascript_driver = :headless_chrome
그러나 gitlab-CI 작동하지는 아래 내가 점점 오전 오류입니다.
Failure/Error: first(:link, "Login", visible: :any).click
NoMethodError: undefined method 'click' for nil:NilClass ./spec/features/user_login_spec.rb:6:in 'block (3 levels) in ' /usr/local/bundle/gems/rspec-retry-0.5.6/lib/rspec/retry.rb:115:in 'block in run' /usr/local/bundle/gems/rspec-retry-0.5.6/lib/rspec/retry.rb:104:in 'loop' /usr/local/bundle/gems/rspec-retry-0.5.6/lib/rspec/retry.rb:104:in 'run' /usr/local/bundle/gems/rspec-retry-0.5.6/lib/rspec_ext/rspec_ext.rb:12:in 'run_with_retry'
this blog은 헤드리스 크롬을 사용했지만 아무 도움이되지 않았습니다.
다음은 현재 사용중인 종속성의 버전입니다. 기본적 first
으로
google-chrome-stable (63.0.3239.108-1)
chromedriver (2.34)
이렇게하면 이해가됩니다. 다시 시도해 볼 것입니다. 답변 해주셔서 감사합니다. – Satendra
이제이 오류가 발생합니다.'Capybara :: ExpectationNotMet : # 보이는 링크를 찾을 것으로 예상했으나 "Login"이 (가) 1 회 이상 일치하지 않았습니다. # /usr/local/bundle/gems/capybara-2.16.0/lib /capybara/node/finders.rb:268:in 'block in all'' – Satendra
@Satendra 그러면 링크가 페이지에 없습니다 - 방문한 후에'page.html'이 무엇인지 확인하십시오. –