我安装了 Selenium,也安装了 Chrome。我在linux上使用python绑定。Firefox 工作正常,但我无法让 Chrome 工作。
如果我没有在 chrome 驱动程序中指定参数,我会得到:
>>> driver = webdriver.Chrome()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 60, in __init__
self.service.start()
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/service.py", line 68, in start
and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path. Please download from http://code.google.com/p/selenium/downloads/list and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'
然后我读了那个链接。它说 selenium 期望安装 chrome 的地方是/usr/bin/google-chrome
我查了一下,果然...
$ which google-chrome
/usr/bin/google-chrome
所以,再试一次,带参数:
>>> driver = webdriver.Chrome('/usr/bin/google-chrome')
太好了,Chrome 启动了,所以我知道 webdriver 可以找到它。但是,任务没有完成。它运行并挂起。与 Firefox 不同,运行它不会释放对脚本的控制。我必须按 ctrl-C 才能夺取控制权,并且无法使用驱动程序对象。
另一方面,在Firefox中...
>>> driver = webdriver.Firefox()
>>> driver.method # etc.