I am using Selenium to run headless Chrome with Capybara, which works great, except I cannot figure out how to use remote debugging. When I add `--remote-debugging-port=4444` or `--remote-debugging-port=9222` or `--remote-debugging-port=9521`, Selenium no longer connects to the browser to run the test -- I get a Net::ReadTimeout.
Capybara.register_driver :selenium do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(loggingPrefs: {browser: 'ALL'})
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument '--disable-infobars' # hide info bar about chrome automating test
# if we don't use this flag, every selenium test will die with the error:
# "unknown error: Chrome failed to start: exited abnormally"
options.add_argument '--no-sandbox'
port = 9521
options.add_preference 'debuggerAddress', "127.0.0.1:#{port}"
# BREAKS THINGS if uncommented
# options.add_argument "--remote-debugging-port=#{port}"
options.add_argument '--headless'
options.add_argument '--window-size=1600,2400'
options.add_preference('profile.default_content_settings.popups', 0)
options.add_preference('download.default_directory', DownloadHelpers::PATH.to_s)
Capybara::Selenium::Driver.new(
app,
clear_local_storage: true,
clear_session_storage: true,
browser: :chrome,
options: options,
desired_capabilities: capabilities,
)
end