Chrome驱动程序需要在Mac上的路径错误中可用

时间:2015-02-03 19:48:49

标签: python-2.7 selenium selenium-chromedriver

我在笔记本电脑上运行OS X 10.9.4,使用Chrome 40.0.2214.94和Selenium 2.44.0,我使用easy_install安装了Python 2.7。我的代码是来自selenium演练的基本代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()

但是当我运行这个时,我得到一个例外:

Traceback (most recent call last):
  File "/Users/masongardner/Desktop/Selenium_tester.py", line 17, in <module>
driver = webdriver.Chrome('/path/to/chromedriver')  # Optional argument, if not specified will search path.
  File "/Library/Python/2.7/site-packages/selenium-2.44.0-py2.7.egg/selenium/webdriver/chrome/webdriver.py", line 59, in __init__
self.service.start()
  File "/Library/Python/2.7/site-packages/selenium-2.44.0-py2.7.egg/selenium/webdriver/chrome/service.py", line 66, in start
    "ChromeDriver executable needs to be available in the path. "
selenium.common.exceptions.WebDriverException: Message: ChromeDriver executable needs to be available in the path. Please download from http://chromedriver.storage.googleapis.com/index.html and read up at http://code.google.com/p/selenium/wiki/ChromeDriver

正如文档所指定的那样,chrome位于我机器上的这个位置:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome

我可以做些什么来解决这个问题并开始按照我的计划从某些页面检索数据?如果您对代码更改或位置更改非常明确,因为我不是最精通计算的!

谢谢大家,我希望我的问题不是太简单!

3 个答案:

答案 0 :(得分:6)

使用'/ usr / local / bin / chromedriver'。这对我有用:

import selenium
import os

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

chromedriver = '/usr/local/bin/chromedriver'
browser = webdriver.Chrome(chromedriver)
browser.get('https://stackoverflow.com/users/login')

答案 1 :(得分:5)

ChromeDriver是一个二进制文件,可将WebDriver与Chrome连接。如果您安装了WebDriver库并安装了Chrome,那么您仍然需要在WebDriver可以找到它的位置使用ChromeDriver二进制文件。

如错误消息所示,您需要从此处获取二进制文件:

http://chromedriver.storage.googleapis.com/index.html

然后将二进制文件放在PATH的某个位置。 (可选)您可以通过设置系统属性告诉WebDriver二进制文件的位置。我首先将二进制文件放在PATH上的某个位置,如果需要,可以获得更具体/更复杂的内容。

/ usr / bin位于OS X的全局路径上,因此这是放置文件的好地方。此外,它可供计算机上的任何用户使用。您可以通过打开Finder窗口打开该文件夹,选择Go - &gt;在菜单中转到文件夹,然后输入/ usr / bin(可能会要求您提供密码,因为它是系统位置。)然后只需将ChromeDriver二进制文件复制到那里。

答案 2 :(得分:4)

要在 Mac OXS El Capitan 10.11.6 上解决此问题,我已将chromedriver可执行文件的副本添加到:

/Library/Python/2.7/site-packages/selenium/webdriver