Setup:
- selenium: 3.141.0
- python: 3.6.7
- heroku-stack: heroku-18
- headless-chrome: v71.0.3578.80 buildpack installed
- chromedriver: v2.44.609551 buildpack installed
I'm getting this error when using selenium in heroku:
urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer'))
I googled but didn't have luck. The error happens at the last line of this code.
Code
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
UA = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36' \
'(KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
DRIVER_PATH = '/app/.chromedriver/bin/chromedriver'
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = '/app/.apt/usr/bin/google-chrome'
chrome_options.add_argument(f'--user-agent={UA}')
chrome_options.add_argument(f'--proxy-server=http://my_private_proxy.com:my_port')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--no-sandbox')
chrome = webdriver.Chrome(executable_path=DRIVER_PATH, options=options)
This error message...
...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: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: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 BrowserSolution
@Test
.