【问题标题】:Selenium and Python3 ChromeDriver raises Message: Can not connect to the Service chromedriverSelenium 和 Python3 ChromeDriver 引发消息:无法连接到服务 chromedriver
【发布时间】:2017-04-24 04:43:09
【问题描述】:

请问如何让 selenium 在这个场景中工作?我已经多次看到这个问题的答案很少或没有,我希望今天有好运。

让我从详细说明我的环境开始。

  1. 我正在运行 MacOS Seirra
  2. 我正在使用 virtualenv/virtualenvwrapperpython3 来运行 关注。

    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    import os
    
    chromedriver = "/usr/local/bin/chromedriver"
    os.environ["webdriver.chrome.driver"] = chromedriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.python.org")
    print(driver.title)
    driver.quit()
    

以下行是在我遵循类似问题 here 的示例之后添加的

chromedriver = "/usr/local/bin/chromedriver" # i used brew to install chrome to get this path from the command 'which chromedriver'

os.environ["webdriver.chrome.driver"] = chromedriver

或者我直接从github下载了chromedriver并添加了如下路径:

/Users/Me/Downloads/chromedriver

我已经尝试不将争论传递给驱动程序,但我仍然收到此错误。

Traceback (most recent call last):
  File "aicpa.py", line 8, in <module>
    driver = webdriver.Chrome()
  File "/Users/Me/.virtualenvs/aicpa/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py", line 62, in __init__
    self.service.start()
  File "/Users/Me/.virtualenvs/aicpa/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 102, 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

本季补充,提前致谢。

【问题讨论】:

  • 所以你现在有两个 chromedriver 二进制文件,一个在 /usr/local/bin/ 一个在 /Users/Me/Downloads/?由于您启动 Chrome 时没有定义 chromedriver 的路径,因此它将在 PATH 中搜索。也许您没有为文件添加适当的权限?检查它们,这可能是原因。

标签: python macos python-3.x selenium selenium-webdriver


【解决方案1】:

你试过了吗?

webdriver.Chrome("/usr/local/bin/chromedriver")

【讨论】:

    【解决方案2】:

    我没有对此进行测试,但请尝试:

    chromedriver = "/usr/local/bin"

    os.environ[] 只是添加一个路径变量,该变量必须是文件夹而不是文件。

    【讨论】:

    • 是的。但是,他使用了webdriver.Chrome(),这在 PATH 中查找,然后他添加了/Users/Me/Downloads/chromedriver(带有文件名?)。但是,如果它不在 PATH 上,它会给出“WebDriverException:消息:'chromedriver' 可执行文件需要在路径中可用”,不是吗?
    • 如果 /Users/Me/Downloads/chromedriver 添加到路径中,它将尝试在文件夹 chromedriver 中查找。由于 chromedriver 是一个文件而不是一个文件夹,这将失败。问题是他用 'which' 查找 chromedriver 输出文件的路径而不是包含文件的文件夹的路径
    • 如果我的解决方案不起作用,请检查 chromedriver 是否标记为可执行。如果不运行 'sudo chmod a+x chromedriver'。
    • 问题是我使用的是VPN,当我断开vpn时一切正常。
    【解决方案3】:

    在我的情况下,将127.0.0.1 localhost 添加到hosts 文件解决了这个问题。

    【讨论】:

      【解决方案4】:

      我不得不从文件中删除隔离属性:

      xattr -d com.apple.quarantine /path/to/chromedriver
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多