WebDriverException:消息:未知错误:Chrome 无法启动:在 VPS 上通过 Python 使用 ChromeDriver Chrome 和 Selenium 异常退出

mcp*_*ums 5 python selenium google-chrome selenium-chromedriver google-chrome-headless

所以我有与这些帖子完全相同的错误

Selenium“Chrome 无法启动:异常退出”错误

未知错误:Chrome 无法启动:异常退出

我尝试了他们推荐的方法,但没有成功。

这是我的代码

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-extensions')
options.add_argument('--headless')
options.add_argument('--disable-gpu')

driver = webdriver.Chrome(chrome_options=options)
driver.get('http://nytimes.com')
print(driver.title)

driver.close()
Run Code Online (Sandbox Code Playgroud)

这是完整的错误消息

Traceback (most recent call last):
  File "seleniumtest.py", line 13, in <module>
    driver = webdriver.Chrome(chrome_options=options)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.15.0-42-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

我到底做错了什么?我在 digitalocean 上的 ubuntu VPS 上运行它。

Deb*_*anB 6

这个错误信息...

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.15.0-42-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

...意味着ChromeDriver无法启动/生成新的WebBrowser即Chrome 浏览器会话。

确切地说,存在两个不兼容问题,如下所述。


禁用 GPU

当Google 团队首次以GA(通用版)形式发布Headless Chrome时,文章提到:Getting Started with Headless Chrome

--disable-gpu \                # Temporarily needed if running on Windows.
Run Code Online (Sandbox Code Playgroud)

添加注释如下:

现在,--disable-gpu如果您在 Windows 上运行,您还需要包含该标志。

根据讨论Headless:使 --disable-gpu 标志不必要,很明显:

Linux或Mac OSX--disable-gpu上不再需要该标志。一旦修复了 SwiftShader 在 Windows 上无头模式下断言失败的错误,它在 Windows 上也将变得不必要。现在,由于这个问题已被标记为已解决,因此该争论现在应该是多余的。--disable-gpu

注意:您可以在ERROR:gpu_process_transport_factory.cc(1007)-Lost UI Shared context : while Initializing Chrome browser through ChromeDriver in Headless mode 中找到详细讨论


但是,您的主要问题是您使用的二进制文件版本之间不兼容,如下所示:

  • 您正在使用chromedriver=2.30
  • chromedriver=2.30的发行说明明确提到了以下内容:

支持Chrome v58-60

  • 我们不知道您的chrome版本。假设您正在使用以下任一最新Chrome版本:
    • Chrome version 71
    • Chrome version 72
    • Chrome version 73

因此ChromeDriver v2.30和Chrome 浏览器 v71-73之间存在明显的不匹配

解决方案

  • 根据您的Chrome 浏览器版本,按照以下指南相应升级ChromeDriver:
    • 如果您使用的是Chrome版本73,则需要下载ChromeDriver 73.0.3683.20
    • 如果您使用的是Chrome版本72,则需要下载ChromeDriver 2.46或ChromeDriver 72.0.3626.69
    • 如果您使用的是Chrome版本71,则需要下载ChromeDriver 2.46或ChromeDriver 71.0.3578.137
    • 对于旧版本的Chrome,请参阅此讨论以了解支持它的ChromeDriver版本。

参考

您可以在以下位置找到一些相关讨论:

  • 谢谢你!!就是这样 - 我有一个旧版本的 chromedriver。自从我今天安装以来,不知道如何安装旧版本,但这并不重要。现在可以工作了! (2认同)

归档时间:

查看次数:

13870 次

最近记录:

6 年,9 月 前