一尘不染

selenium.common.exceptions.WebDriverException:消息:打开chrome浏览器时无法连接到服务chromedriver.exe

selenium

我的本地Chrome 67 Python 3.5.0 Selenium 3.12.0具有以下环境

我已经下载了2.39版的chromedriver

我有.py文件,如下所示

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    driver = webdriver.Chrome(executable_path="hromedriver.exe")
    driver.get('http://www.google.com')
    time.sleep(5)
    search_box = driver.find_element_by_name('q')
    search_box.send_keys('Python')
    search_box.submit()
    time.sleep(5)
    driver.quit()

我收到以下错误。

    C:\Python354\python.exe D:/formf.py
    Traceback (most recent call last):
      File "D:/PCPNDT/form.py", line 4, in <module>
        driver = webdriver.Chrome(executable_path="chromedriver.exe")  # Optional argument, if not specified will search path.
      File "C:\Python354\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 68, in __init__
        self.service.start()
      File "C:\Python354\lib\site-packages\selenium\webdriver\common\service.py", line 104, in start
        raise WebDriverException("Can not connect to the Service %s" % self.path)
    selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service chromedriver.exe

我也尝试过使用其他网络驱动程序,如geckodriver.exe仍然相同的错误。

请帮助我解决此错误。

谢谢!


阅读 1054

收藏
2020-06-26

共1个答案

一尘不染

乍一看,您的代码试用似乎在 参数 execute_path* 中存在一个小错误。代替它应该是:
__
*hromedriver.exe

    # Windows OS
    driver = webdriver.Chrome(executable_path=r'C:\path\to\chromedriver.exe')
    # Linux OS
    driver = webdriver.Chrome(executable_path='/path/to/chromedriver')

此错误消息…

    selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service chromedriver.exe

…表示程序/脚本无法 ChromeDriverService 通过 chromedriver.exe 启动/产生。

该错误的潜在原因可能是:

  • 由于缺少条目 127.0.0.1 localhost/etc/hosts

  • Windows操作系统 -添加127.0.0.1 localhost/etc/hosts

  • Mac OSX- 确保输入以下内容:

        127.0.0.1   localhost
    255.255.255.255 broadcasthost
    ::1 localhost
    fe80::1%lo0 localhost   

参考资料

根据selenium.common.exceptions.WebDriverException中的讨论:消息:无法连接到服务geckodriver

  • 不需要127.0.0.1 localhost在主机文件中显式设置Selenium 。
  • 但是,必须将 本地主机 映射到 IPv4本地环回(127.0.0.1)
  • 这种映射的机制不必总是通过hosts文件。
  • Windows OS 系统上,它根本没有映射到hosts文件中(解析localhost由DNS解析器完成)。

TL; DR

如何将主机文件重置为默认值

2020-06-26