Setup:
This error message...
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
...implies that the ChromeDriver in Headless mode was unable to initiate/spawn a new WebBrowser i.e. Chrome Browser session.
Some information regarding the versions of the binaries you are using would have helped us to analyze the error in a better way. However, this issue of urllib3 can be obseved due to several reasons as mentioned below:
--disable-gpu
is not needed as in the discussion Headless: make --disable-gpu flag unnecessary skyos...@chromium.org mentioned:This flag is no longer necessary on Linux or macOS. It will become unnecessary on Windows as soon as SwiftShader fails an assert on Windows in headless mode gets fixed.
You can find a detailed discussion in Lost UI shared context : while initializing Chrome browser through ChromeDriver in Headless mode
Additionally, you can add the argument --disable-dev-shm-usage
to overcome limited resource problems:
chrome_options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
You can find a detailed discussion on --disable-dev-shm-usage
in the discussion org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist while trying to initiate Chrome Browser
@Test
.