selenium.common.exceptions.WebDriverException: Message: chrome not reachable error while using find_element_by_id Selenium with ChromeDriver
Asked Answered
A

3

7

Here is the html code:

< input class="form-control input-lg input auto-complete" id="ymMsgInput" type="text" placeholder="Type your message ..." autocomplete="off" >

Code:

i = s.find_element_by_id("ymMsgInput");

Python - Selenium Chrome webdriver error:

Traceback (most recent call last):
  File "<pyshell#19>", line 1, in <module>
    i = s.find_element_by_id("ymMsgInput");
  File "C:\Users\vishn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 351, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Users\vishn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 955, in find_element
    'value': value})['value']
  File "C:\Users\vishn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
  File "C:\Users\vishn\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
  (Session info: chrome=65.0.3325.146)
  (Driver info: chromedriver=2.36.540470 (e522d04694c7ebea4ba8821272dbef4f9b818c91),platform=Windows NT 10.0.16299 x86_64)
Ailis answered 10/3, 2018 at 5:44 Comment(0)
Z
10

The error says it all :

    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: chrome not reachable

This error is observed in case of version compatibility between the binaries which an user uses but definitely this is not your case as you are :

  • Using chromedriver=2.36
  • Using chrome=65.0
  • Selenium version unknown

    Release Notes of chromedriver=2.36 clearly mentions :

    Supports Chrome v65-66

But, since the release of the latest Chromedriver 2.36 Selenium users had been facing issues with it. Here is one of the threads :

The root cause is related to the commit regarding :

  • Remove --disable-infobars

    So, a couple of possible solution will be to :

  • To use ChromeOptions Class to maximize the browser.

  • Remove the option disable-infobars
  • An example :

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("start-maximized")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\path\to\chromedriver.exe')
    driver.get('https://www.google.co.in')
    print("Page Title is : %s" %driver.title)
    

If your issue still persists consider the following :

  • Upgrade Selenium Python Client to current levels Version 3.10.0.
  • Upgrade ChromeDriver to stable ChromeDriver v2.35 level.
  • Keep Chrome version at Chrome v64.x levels. (as per ChromeDriver v2.35 release notes)
  • Clean your Project Workspace through your IDE and Rebuild your project with required dependencies only.
  • Use CCleaner tool to wipe off all the OS chores before and after the execution of your test Suite.
  • If your base Chrome version is too old, then uninstall it through Revo Uninstaller and install a recent GA and released version of Chrome.
  • Execute your Test.
Zamindar answered 10/3, 2018 at 8:49 Comment(0)
P
9

Your exception is not about finding an element. Selenium is not able to contact Chrome. You can do couple of things.

  1. Downgrade/upgrade your chromedriver based on your selenium version.

  2. Pass --no-sandbox to chrome options.

    chrome_options.add_argument('--no-sandbox')
    chrome = webdriver.Chrome('/usr/local/bin/chromedriver', chrome_options=chrome_options)
    
Potassium answered 10/3, 2018 at 5:56 Comment(0)
T
0

In addition to the version issues mentioned above (e.g., pip uninstall chromedriver-binary and re-install a different version with pip install chromedriver-binary==104.0.5112.20, for example):

Leave the browser window open after running 'driver = webdriver.Chrome()' in Python! Closing it will interfere with subsequent lines using driver.get().

Turkish answered 16/8, 2022 at 18:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.