Selenium::WebDriver::Error::WebDriverError: 返されたペイロードに sessionId がありません - Ruby 2.5.3 から移行。 3.1.2へ

概要

Ruby と関連する gem を 2.5.3 から 3.1.2 にアップグレードしました。 Cucumber テストは Chrome 上の v 2.5.3 に対して正常に実行されていましたが、現在は以下のエラーとスタック トレースが発生しています。私の gemfile.lock も添付しました

SELENIUM ブラウザ: クロム クロムパス: /opt/google/chrome クロムドライバー: /home/####/git/se/acceptancetests/chromedriver

Selenium::WebDriver::Error::WebDriverError: 返されたペイロードに sessionId がありません /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/webdriver/remote/bridge.rb:57 :in create_session’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/webdriver/common/driver .rb:313:create_bridge のブロック内’ 内部:カーネル:90:タップ中’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/ webdriver/common/driver.rb:312:in create_bridge’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/webdriver/common/driver.rb:74 :in 初期化’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/webdriver/chrome/driver .rb:36:初期化中’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/webdriver/common/driver.rb:47 :in new’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/webdriver/common/driver .rb:47:in for’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/selenium-webdriver-4.8.0/lib/selenium/webdriver.rb:88:in for’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/selenium/driver.rb:83:ブラウザ内’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/selenium/driver.rb:137:inexecute_script’ /home/####/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/capybara-3.38.0/lib/capybara/session.rb:605:inexecute_script’ /home/####/git/see/acceptancetests/features/step_settings/store_steps.rb:2827:in wait_for_page_load’ /home/####/git/se/acceptancetests/features/support/hooks.rb:18 :アフターステップ中’

Gemfile.lock:

宝石 リモート: ### 仕様: アドレス指定可能 (2.8.1) public_suffix (>= 2.0.2、< 6.0) 斧マッチャー (2.6.1) ダムデリゲーター (~> 0.8) ヴァートゥス (~> 1.0) 公理型 (0.1.1) 子孫追跡者 (~> 0.0.4) アイスナイン (~> 0.11.0) thread_safe (~> 0.3、>= 0.3.1) ビルダー (3.2.4) カピバラ (3.14.0) アドレス指定可能な マトリックス mini_mime (>= 0.1.3) のこぎり (~> 1.8) ラック (>= 1.6.0) ラックテスト (>= 0.6.3) regexp_parser (>= 1.5、< 3.0) xpath (~> 3.2) 強制的 (1.0.0) 子孫追跡者 (~> 0.0.1) 同時実行ルビー (1.2.0) キュウリ (5.3.0) ビルダー (~> 3.2、>= 3.2.4) cucumber-ci-environment (~> 9.0、>= 9.0.4) キュウリの芯 (~> 11.0、>= 11.0.0) cucumber-cucumber-expressions (~> 15.1、>= 15.1.1) キュウリ-ガーキン (~> 23.0、>= 23.0.1) cucumber-html-formatter (~> 19.1、>= 19.1.0) キュウリメッセージ (~> 18.0、>= 18.0.0) diff-lcs (~> 1.5、>= 1.5.0) MIME タイプ (~> 3.4、>= 3.4.1) multi_test (~> 1.1、>= 1.1.0) sys-uname (~> 1.2、>= 1.2.2) キュウリ-ci-環境 (9.1.0) キュウリの芯 (11.0.0) キュウリ-ガーキン (~> 23.0、>= 23.0.1) キュウリメッセージ (~> 18.0、>= 18.0.0) cucumber-tag-expressions (~> 4.1、>= 4.1.0) キュウリ-キュウリ-式 (15.2.0) キュウリ-ガーキン (23.0.1) キュウリメッセージ (~> 18.0、>= 18.0.0) キュウリ-html-フォーマッタ (19.2.0) キュウリメッセージ (~> 18.0、>= 18.0.0) キュウリメッセージ (18.0.0) キュウリのタグ式 (4.1.0) 子孫追跡者 (0.0.4) thread_safe (~> 0.3、>= 0.3.1) diff-lcs (1.5.0) ドメイン名 (0.5.20190701) unf (>= 0.0.5、< 1.0.0) ダムデリゲーター (0.8.1) イコライザー (0.0.11) エクスコン (0.98.0) ffi (1.15.5) ヘッドレス (2.3.1) http-accept (1.7.0) http-cookie (1.0.5) ドメイン名 (~> 0.5) i18n (1.12.0) 同時実行ルビー (~> 1.0) アイスナイン (0.11.2) jwt (2.2.3) マトリックス (0.4.2) MIME タイプ (3.4.1) MIME タイプ データ (~> 3.2015) MIME タイプ データ (3.2022.0105) ミニ_mime (1.1.2) mini_portile2 (2.6.1) マルチテスト (1.1.0) mysql2 (0.5.5) netrc (0.11.0) ノコギリ (1.12.5) mini_portile2 (~> 2.6.1) racc (~> 1.4) 並列 (1.22.1) 並列テスト (3.13.0) 平行 パブリックサフィックス (5.0.1) racc (1.6.2) ラック (3.0.4.1) ラックテスト (2.0.2) ラック (>= 1.3) regexp_parser (2.6.2) 残りのクライアント (2.1.0) http-accept (>= 1.7.0、< 2.0) http-cookie (>= 1.0.2、< 2.0) MIME タイプ (>= 1.16、< 4.0) netrc (~> 0.8) rexml (3.2.5) rスペック(3.12.0) rspec-core (~> 3.12.0) rspec-expectations (~> 3.12.0) rspec-mocks (~> 3.12.0) rspec-core (3.12.0) rspec-support (~> 3.12.0) rspec-expectations (3.12.2) diff-lcs (>= 1.2.0、< 2.0) rspec-support (~> 3.12.0)

diff-lcs (>= 1.2.0、< 2.0) rspec-support (~> 3.12.0) rspec-サポート (3.12.0) ルビー-hmac (0.4.0) ルビー-oci8 (2.2.12) ルビージップ (2.3.2) セレンウェブドライバー (4.8.0) rexml (~> 3.2、>= 3.2.5) Rubyzip (>= 1.2.2、< 3.0) ウェブソケット (~> 1.0) sys-uname (1.2.2) ffi (~> 1.1) スレッドセーフ (0.3.6) unf (0.1.4) unf_ext unf_ext (0.0.8.2) ヴァートゥス (1.0.5) 公理タイプ (~> 0.1) 強制的 (~> 1.0) 子孫_トラッカー (~> 0.0、>= 0.0.3) イコライザー (~> 0.0、>= 0.0.9) ウェブソケット (1.2.9) xpath (3.2.0) のこぎり (~> 1.8)

プラットフォーム ルビー

依存関係 斧合わせ者 カピバラ キュウリ エクスコン 頭のない i18n jwt (~> 2.2.2) mysql2 鋸(=1.12.5)

解決策

ここでのエラーは、機能を正しく生成できなかったことを示しています。そのため、Selenium に対して行った更新によって、無効なペイロードが生成される可能性があります。

Selenium 4alpha6 あたりで、いくつかの大きな変更が加えられました (v3 では、desired_capabilities を使用できましたが、現在は単に機能を使用します)

capybara を使用している場合は、ここで gem を使用して、1 クリックで単純なドライバーを生成できます https://github.com/site-prism/automation_helpers/blob/main/lib/automation_helpers/drivers/local.rb#L7

編集: あなたの宝石も少し不一致です。最新の Selenium-webdriver を使用していますが、capybara の非常に古いバージョンを使用しています。年齢が近い人たちを維持できるかどうかを確認する