Selenium无法启动Chromedriver

Duš*_*ďar 9 python ubuntu selenium selenium-chromedriver

我无法开始ChromedriverSelenium.

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.google.com')
Run Code Online (Sandbox Code Playgroud)

它永远不会 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)
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu 14.04(64b)使用Python 2.7.6(virtualenv安装)和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*
Run Code Online (Sandbox Code Playgroud)

编辑

dm@Z580:~$ google-chrome --version
Google Chrome 48.0.2564.97 
Run Code Online (Sandbox Code Playgroud)

降级为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
Run Code Online (Sandbox Code Playgroud)

但遗憾的是,结果仍然相同.

知道为什么会这样吗?

Duš*_*ďar 6

好的,所以解决方案有点奇怪.

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

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

sudo mv /opt/google/chromedriver /opt/
sudo ln -fs /opt/chromedriver /usr/local/bin/chromedriver
Run Code Online (Sandbox Code Playgroud)

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

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://www.google.com')
Run Code Online (Sandbox Code Playgroud)

Chrome启动和一切.

旧的Selenium文档页面上的以下行启发我检查并最终更改Chromedriver位置:

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