所以我和这些帖子有完全一样的错误
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上运行它。
此错误消息…
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浏览器 会话。
确实存在两个 不兼容的 问题,如下所述。
Google团队 首次将 Headless Chrome浏览器 发布为 GA(一般可用性)时 ,文章提到: __Getting Started with HeadlessChrome
Getting Started with HeadlessChrome
--disable-gpu \ # Temporarily needed if running on Windows.
注释添加为:
现在,--disable-gpu如果您在Windows上运行,则还需要包含该标志。
--disable-gpu
根据讨论Headless:不需要–disable- gpu标志,很明显:
--disable-gpu在 Linux 或 Mac OSX 上不再需要该标志。一旦错误SwiftShader无法在无头模式下在Windows上断言时,在Windows上也将不再需要此问题。现在,此问题已标记为已 修复, 该参数--disable-gpu现在应该是多余的。
注意 :您可以在错误中找到详细的讨论[:gpu_process_transport_factory.cc(1007)-丢失的用户界面共享上下文:在无头模式下通过ChromeDriver初始化Chrome浏览器时
但是,您的主要问题是所使用的二进制版本之间的 不兼容 ,如下所示:
支持 Chrome v58-60
Chrome version 71
Chrome version 72
Chrome version 73
因此, ChromeDriver v2.30 和 Chrome浏览器v71-73 之间明显不匹配 __