ruby3.1
rails 7.0
selenium-web-driver 4.16
capybara 3.39.2
結果としては、headless chromeを使う際のオプション名が原因でbrowserNameがchromeとなるはずがchrome-headless-shellになっていた。
chromeはヘッドレスモードが2種類あり、古い方がchrome-headless-shellとなるようだ。
chrome-headless-shellは別で専用のバイナリが公式から用意されていて、そちらをDLして使う事も可能らしい。
修正前
Capybara.register_driver :chrome do |app|
options = Selenium::WebDriver::Options.chrome
options.args << '--headless'
options.args << '--no-sandbox'
options.args << '--disable-dev-shm-usage'
end
修正後
Capybara.register_driver :chrome do |app|
options = Selenium::WebDriver::Options.chrome
options.args << '--headless=new' # 新しいheadless modeを使う
options.args << '--no-sandbox'
options.args << '--disable-dev-shm-usage'
end
参考
https://www.selenium.dev/blog/2023/headless-is-going-away/
https://developer.chrome.com/blog/chrome-headless-shell?hl=ja