尝试使用 selenium webdriver 在 linux 上启动 chrome 驱动程序

Posted

技术标签:

【中文标题】尝试使用 selenium webdriver 在 linux 上启动 chrome 驱动程序【英文标题】:Try to start chrome driver on linux with selenium webdriver 【发布时间】:2014-11-16 11:42:17 【问题描述】:

我试图找到答案但不能,现在我自己问。

我写了一个简单的测试

from selenium import webdriver

driver = webdriver.Chrome(executable_path=r"/home/tranter/workspace/chromedriver")
driver.get("http://www.python.org")
driver.close()

比我有回溯

> tranter@tranter-VirtualBox:~/workspace$ python testchrome.py Traceback
> (most recent call last): File "testchrome.py", line 6, in <module>
> driver =
> webdriver.Chrome(executable_path=r"/home/tranter/workspace/chromedriver")
> File
> "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py",
> line 65, in __init__ keep_alive=True) File
> "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py",
> line 73, in __init__ self.start_session(desired_capabilities,
> browser_profile) File
> "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py",
> line 121, in start_session 'desiredCapabilities':
> desired_capabilities, File
> "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py",
> line 173, in execute self.error_handler.check_response(response) File
> "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py",
> line 166, in check_response raise exception_class(message, screen,
> stacktrace) selenium.common.exceptions.WebDriverException: Message:
> u'unknown error: Chrome failed to start: exited abnormally\n (Driver
> info: chromedriver=2.10.267517,platform=Linux 3.13.0-35-generic x86)'

我有最新版本的chromedriver 10,最新的chromium,最新的selenium webdriver。 这一切都是从 xubuntu 开始的

Linux 版本 3.13.0-35-generic (buildd@roseapple)(gcc 版本 4.8.2 (Ubuntu 4.8.2-19ubuntu1))#62-Ubuntu SMP Fri Aug 15 01:58:01 UTC 2014

请帮帮我:(

【问题讨论】:

【参考方案1】:

对于 Linux 用户: 在启动 Chrome 之前启动 Display。更多信息请点击here

from selenium import webdriver
from pyvirtualdisplay import Display
# Add following 2 line before start the Chrome
display = Display(visible=0, size=(800, 800))  
display.start()
driver = webdriver.Chrome()
driver.get("http://www.google.com")
driver.quit()
display.stop()

【讨论】:

为什么大家都赞成一个与问题完全无关的答案?【参考方案2】:

2.10.267517 不是最新版本。

$ chromedriver --version
ChromeDriver 2.10.267518

使用以上版本 Python 2.7.6,您的代码运行良好。 (除了我修改了chromedriver路径)

仅供参考,这里是我的 ubuntu 的 unname:

$ uname -a
Linux jmlee12 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
$ python -V
Python 2.7.6

【讨论】:

@tranter,这里:chromedriver.storage.googleapis.com/index.html 您可以在这里找到当前最新版本:chromedriver.storage.googleapis.com/index.html?path=2.10 我在这里试试,但是 10 版本是 17,而不是 18。而且它是 32 位版本,你能以某种方式分享这个东西吗? @tranter,如果您点击链接,您可以找到 32 位、64 位版本。仅供参考,这是 64 位版本 (2.10.267518) chromedriver.storage.googleapis.com/2.10/… 的链接 我不明白为什么当我下载 chromedriver_linux32.zip 2014-05-01 20:46:22 2.33MB 4fecc99b066cb1a346035bf022607104 它会是 17 版本:( @tranter,你的意思是你的系统是 32 位的吗?

以上是关于尝试使用 selenium webdriver 在 linux 上启动 chrome 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

Selenium.WebDriver - 当我尝试在 Chrome 中运行测试时出现错误

在 Python 中使用 Remote WebDriver 设置 Chrome DevTools (Selenium 4)

如何在 ruby​​ 中使用 Selenium WebDriver (selenium 2.0) 客户端设置选项

如何使用 selenium webdriver 查找动态元素?

Selenium & webdriver.io 如何使用 executeScript?

无法在 python selenium 中使用 selenium chrome webdriver 定位元素