system specでNet::ReadTimeoutになったら

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テストしたいが文章の文字数しかバリデーションしていない