ChromeDriverを使ったE2Eテストは再現性に注意が必要
他の環境ではちょっとどうなっているのか分からないのでとりあえず Ruby 限定の話。
- Chrome ウェブブラウザ
- ChromeDriver - WebDriver for Chrome
- flavorjones/chromedriver-helper: Easy installation and use of chromedriver, the Chromium project's selenium webdriver adapter.
登場人物は以上。以下、メモ。
- ChromeDriver は standalone server である
- Ruby では ChromeDriver を利用しやすくしてくれる chromedriver-helper gem がある
- これを使うと chromedriver を起動するコマンドとこれのアップデートを支援する chromedriver-update コマンドがインストールされる
- chromedriver-helper gem のバージョンと chromedriver server のバージョンは一致しない
- chromedriver-update を叩いた時点での最新バージョンが常に安定バージョンとは限らない
- 明示的にバージョンダウンするには chromedriver-update <version> とする(helpは特にない)
これを CI で再現するには chromedriver-update をとりあえず叩くようにしておきつつ、コケたらバージョン指定してダウンするといった対応を即座にしていく必要がある。のかな? いや違うな、CI で動く Chrome のバージョンの変更を検知するところからか?
とにかく PhantomJS 時代と違って Headless Chrome でいこうと思ったら Chrome, ChromeDriver, chromedriver-helper gem のバージョンの情報を追う必要があるので、ちょっとこれまでより気を使うことが増えるなぁという感想でした。
More
Recent Posts
- » Gemini Advancedでもうゲームが変わっていた
- » 今さらLLMのモデルの違いとプロンプトエンジニアリングについて
- » Bundler環境でIRBでもLSPでもドキュメントを利用する方法
- » Ruby 3.2と3.3のirb historyの扱いの違いと対処方法
- » Result型とRailway Oriented Programmingをめぐる旅
- » dry-operationのススメとエラー情報をViewまで持っていく方法の模索
- » aligach.netのRubyとViteをバージョンアップした
- » ViteRuby 3.7.0は起動方法のデフォルトがnpx経由になった
- » GmailからSpreadsheetとGoogle Driveへ書き出すGASライブラリを作った
- » 面倒くさがり屋のためのTypeScript環境