selenium.common.exceptions.WebDriverException:消息:将 Selenium 与 ChromeDriver 一起使用时出现无法访问 chrome find_element_by_id错误

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

提问人:Guru Vishnu Vardhan Reddy 提问时间:3/10/2018 最后编辑:undetected SeleniumGuru Vishnu Vardhan Reddy 更新时间:8/17/2022 访问量:39436

问:

下面是 html 代码:

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

法典:

i = s.find_element_by_id("ymMsgInput");

Python - Selenium Chrome webdriver 错误:

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)
python selenium selenium-webdriver chrome-web-driver

评论


答:

9赞 Prakash Palnati 3/10/2018 #1

您的例外不是关于查找元素。Selenium无法联系Chrome。你可以做几件事。

  1. 根据您的 selenium 版本降级/升级您的 chromedriver。

  2. 将 --no-sandbox 传递给 chrome 选项。

    chrome_options.add_argument('--no-sandbox')
    chrome = webdriver.Chrome('/usr/local/bin/chromedriver', chrome_options=chrome_options)
    
10赞 undetected Selenium 3/10/2018 #2

错误说明了一切:

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

在用户使用的二进制文件之间的版本兼容性的情况下,会观察到此错误,但绝对不是您的情况,因为您是:

  • 使用 chromedriver=2.36
  • 使用 chrome=65.0
  • Selenium 版本未知

    chromedriver=2.36 的发行说明明确提到:

    Supports Chrome v65-66

但是,自从最新的Chromedriver 2.36发布以来,Selenium用户一直面临着问题。这是其中一个线程:

根本原因与提交有关:

  • 删除 --disable-infobars

    因此,几种可能的解决方案是:

  • 使用 ChromeOptions 类来最大化浏览器。

  • 删除该选项 disable-infobars
  • 举个例子:

    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)
    

如果您的问题仍然存在,请考虑以下事项:

  • Selenium Python 客户端升级到当前级别 版本 3.10.0
  • 升级 ChromeDriver稳定的 ChromeDriver v2.35 级别。
  • Chrome 版本保持在 Chrome v64.x 级别。(根据 ChromeDriver v2.35 发行说明)
  • 通过 IDE 清理项目工作区,然后仅使用所需的依赖项重新生成项目。
  • 使用CCleaner工具清除测试套件执行前后的所有操作系统杂务。
  • 如果您的基本 Chrome 版本太旧,请通过 Revo Uninstaller 将其卸载并安装最新的 GA 和已发布的 Chrome 版本。
  • 执行您的 .Test
0赞 cmoez 8/17/2022 #3

除了上面提到的版本问题(例如,pip uninstall chromedriver-binary 并使用 pip install chromedriver-binary==104.0.5112.20 重新安装不同的版本,例如):

运行“driver = webdriver”后,使浏览器窗口保持打开状态。Chrome()' 在 Python 中!关闭它将干扰使用 driver.get() 的后续行。