Forums

Python Selenium Task Crashed out

I have a for loop in my python selenium script. It was running fine and mid-way it threw this error: stars are used to hide information. now for every for loop I start a fresh driver and towards the end of every item processed, I use driver.close()

    options = Options()
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--disable-gpu")
    #browser = webdriver.Chrome(options=chrome_options)
    prefs = {'profile.default_content_setting_values.automatic_downloads':1,
    'download.default_directory':'/home/**/Downloads/'}
    #options.add_experimental_option('prefs',prefs)
    chrome_options.add_experimental_option('prefs',prefs)
driver.close()
 Traceback (most recent call last):
  File "/home/**/**.py", line 318, in <module>
    driver = webdriver.Chrome(options=chrome_options)
  File "/usr/local/lib/python3.10/site-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
    super(WebDriver, self).__init__(DesiredCapabilities.CHROME['browserName'], "goog",
  File "/usr/local/lib/python3.10/site-packages/selenium/webdriver/chromium/webdriver.py", line 92, in __init__
    RemoteWebDriver.__init__(
  File "/usr/local/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 275, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 365, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 430, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
Stacktrace:
#0 0x585b6ba8ae89 <unknown>

How does the loop look like and when does it throw that error?

I must say, the loop looks gorgeous! :P

for item in items:
    options = Options()
    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--disable-gpu")
    #browser = webdriver.Chrome(options=chrome_options)
    prefs = {'profile.default_content_setting_values.automatic_downloads':1,
    'download.default_directory':'/home/**/Downloads/'}
    #options.add_experimental_option('prefs',prefs)
    chrome_options.add_experimental_option('prefs',prefs)

    driver = webdriver.Chrome(options=chrome_options) #IT CRASHED HERE 
    driver.maximize_window()
    ***All the work is done here ***
    driver.close()

So this loop should run say 50 times. It ran about 23-24 times and then crashed.

I'm not entirely clear in my mind about Selenium's distinction between the close and quit methods, but we do recommend using quit on our help page, and the errors that you're seeing suggest that something is preventing Chrome from starting (which would make sense if it's not fully exiting, so you're getting Chrome processes piling up). So could you try adding a driver.quit() as well?