ユーザーログイン機能をテストするための仕様コードは以下のとおりです。ヘッドレスChrome搭載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: #少なくとも1回はログインしましたが、一致するものは見つかりませんでした #/usr/local/bundle/gems/capybara-2.16.0/lib /capybara/node/finders.rb:268:in 'block in all'' – Satendra
@Satendraリンクがページにない - 訪問後に 'page.html'が何であるかを確認してください –