LoginSignup
0
0

More than 3 years have passed since last update.

Docker+Seleniumによるブラウザテストでエラー( Selenium::WebDriver::Error::WebDriverError: tab crashed )

Posted at

開発環境

  • Ruby 2.7.2
  • Docker 3
  • RSpec
  • Selenium

背景

seleniumによるchromeのブラウザテストで、Ajaxによるボタン押下処理の自動テストを作成していました。

発生したエラー

Failures:
1.1) Failure/Error: first("input[value='ログイン']").click

          Selenium::WebDriver::Error::WebDriverError:
            tab crashed
              (Session info: chrome=89.0.4389.82)

beforeで記述したログイン処理にてエラーが起きました。
頻度としては2回に1回程度で、ブラウザテストの不安定さによるものが原因と考えられました。

調査したところ、メモリーが切れた場合に、生じるエラーとのことでした。
https://bugs.chromium.org/p/chromedriver/issues/detail?id=1884

解決策

docker環境で確保されるメモリサイズが小さいことが原因と予想しました。
docker-compose.ymlからメモリーサイズを変えられることがわかったため、下記のように修正しました。

docker-compose.yml
  chrome:
    image: selenium/standalone-chrome
    ports:
      - "4444:4444"
    shm_size: '2gb' #追加

結果

無事に治りました。
これでも治らない場合は、以下の対応が考えられます。

① メモリサイズを2gbよりも大きく変更
② 表示ブラウザの画面サイズを小さくする設定に変更

参考資料

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0