一尘不染

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

selenium

所以我和这些帖子有完全一样的错误

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()

这是完整的错误消息

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)

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


阅读 319

收藏
2020-06-26

共1个答案

一尘不染

此错误消息…

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)

…暗示 ChromeDriver 无法启动/产生新的 WebBrowser,Chrome浏览器 会话。

确实存在两个 不兼容的 问题,如下所述。


禁用gpu

Google团队 首次将 Headless Chrome浏览器 发布为 GA(一般可用性)时 ,文章提到: __Getting Started with HeadlessChrome

--disable-gpu \                # Temporarily needed if running on Windows.

注释添加为:

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

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

--disable-gpuLinuxMac OSX
上不再需要该标志。一旦错误SwiftShader无法在无头模式下在Windows上断言时,在Windows上也将不再需要此问题。现在,此问题已标记为已
修复, 该参数--disable-gpu现在应该是多余的。

注意 :您可以在错误中找到详细的讨论[:gpu_process_transport_factory.cc(1007)-丢失的用户界面共享上下文:在无头模式下通过ChromeDriver初始化Chrome浏览器时


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

支持 Chrome v58-60

  • 您不知道自己的 Chrome 版本。假设您使用以下任何一种最新的 Chrome 版本:
    • Chrome version 71
    • Chrome version 72
    • Chrome version 73

因此, ChromeDriver v2.30Chrome浏览器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 版本。

2020-06-26