Selenium无法启动Chromedriver。

9

我无法使用 Selenium 启动 Chromedriver

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.google.com')

它从未执行到 browser.get('http://www.google.com') 但是会出现以下错误:

    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.21.371461 (633e689b520b25f3e264a2ede6b74ccc23cb636a),platform=Linux 3.13.0-76-generic x86_64)

我正在使用 Ubuntu 14.04(64位)操作系统,安装了virtualenv环境下的Python 2.7.6版本,并且使用了selenium==2.50.1库。

dm@Z580:~$ which chromedriver
/usr/local/bin/chromedriver

dm@Z580:~$ ll /usr/local/bin/chromedriver
lrwxrwxrwx 1 root root 24 feb  4 22:13 /usr/local/bin/chromedriver -> /opt/google/chromedriver*

编辑

dm@Z580:~$ google-chrome --version
Google Chrome 48.0.2564.97 

降级至 Chromedriver 2.20:

wget http://chromedriver.storage.googleapis.com/2.20/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
chmod 777 chromedriver
sudo mv -f chromedriver /opt/google/chromedriver

但是,遗憾的是,结果仍然相同。 有任何想法为什么会发生这种情况?

有趣的是,在MacOSx上无法重现它,我尝试了Python 2.7和3.5。您安装了哪个版本的Chrome? - alecxe
如果您降级到chromedriver 2.20会怎样? - alecxe
这是真正的chromedriver文件吗(不是文件夹)?你可以试试这个吗?browser = webdriver.Chrome('/opt/google/chromedriver') - Buaban
你需要在 www.google.com 前面加上 http://。browser.get('http://www.google.com') - Mario Galea
@Buaban 这不是一个目录,只有可执行文件被压缩了;使用 browser = webdriver.Chrome('/opt/google/chromedriver') 也没有帮助。 - Dušan Maďar
显示剩余2条评论
2个回答

7

好的,解决方案有点奇怪。

我将 Chromedriver 二进制文件从 /opt/google/ (其中安装了 Google Chrome)移动到 /opt/,更新了符号链接,现在它能正常工作!

与问题本身相比,这两行代码解决了问题:

sudo mv /opt/google/chromedriver /opt/
sudo ln -fs /opt/chromedriver /usr/local/bin/chromedriver

现在我能运行以下Python代码:

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.google.com')

Chrome启动并运行。

旧版Selenium文档页面上的以下内容激发了我去检查和改变Chromedriver的位置:

对于Linux系统,ChromeDriver期望 /usr/bin/google-chrome是指向实际Chrome二进制文件的符号链接。


-1

我不知道你是否还有其他问题,但是chromedriver不喜欢“www.google.com”,但是对于“http://www.google.com”它是可以正常工作的。


它永远不会到达 browser.get('www.google.com') ... 但除此之外,是的,说得好。 - Dušan Maďar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接