headless chromeを利用していて、超長い文章をフォームに入力しようとするとNet::ReadTimeoutでこける。そもそも超長い文章をフォームに入れないようにするべきだけど、他に方法がない*1か微妙な場合はtimeoutの間隔を伸ばすことで対応できる。
Capybara.register_driver :selenium_chrome_headless do |app| browser_options = Selenium::WebDriver::Chrome::Options.new browser_options.args << '--headless' browser_options.args << '--disable-gpu' browser_options.args << '--no-sandbox' Capybara::Selenium::Driver.new( app, browser: :chrome, options: browser_options, timeout: 600 # これ ).tap do |driver| driver.browser.manage.window.size = Selenium::WebDriver::Dimension.new( 1920, 1080 ) end end
*1:例: バリデーションエラーをE2Eテストしたいが文章の文字数しかバリデーションしていない