WebDriverException:消息:未知错误:Chrome无法启动:崩溃

时间:2017-08-30 07:32:17

标签: python google-chrome selenium centos7 headless

我正在尝试将headless chromeselenium一起使用,我为chromedriver创建了一个符号链接到/ usr / local / bin,但是当我运行时

from selenium import webdriver

options = webdriver.ChromeOptions()    
options.add_argument('--headless')

browser = webdriver.Chrome()
browser.get('http://www.google.com')

我收到错误

     Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/anaconda2/envs/tensorflow/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 69, in __init__
    desired_capabilities=desired_capabilities)
  File "/opt/anaconda2/envs/tensorflow/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
    self.start_session(desired_capabilities, browser_profile)
  File "/opt/anaconda2/envs/tensorflow/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session
    response = self.execute(Command.NEW_SESSION, capabilities)
  File "/opt/anaconda2/envs/tensorflow/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/opt/anaconda2/envs/tensorflow/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 3.10.0-327.22.2.el7.x86_64 x86_64)

它还会生成一个核心。*****,一个带有五个随机数的核心文件点,大于200MB。

版本:

Selenium 3.0.0b3 
Google Chrome 60.0.3112.113  
chromedriver 2.30

有人可以帮我弄清楚出了什么问题吗?

4 个答案:

答案 0 :(得分:1)

我无法让无头Chrome在Ubuntu 14.04上工作,但是它遇到了同样的unknown error: Chrome failed to start: crashed错误,我将其追溯到Selenium驱动程序无视的依赖问题。

要诊断我尝试直接运行无头Chrome并获得:

$ google-chrome --headless "http://example.com"
NSS_VersionCheck("3.26") failed. NSS >= 3.26 is required.

这是libnss3安装的内容:

$ dpkg -s libnss3
Package: libnss3
Version: 2:3.23-0ubuntu0.14.04.1

所以我切换到libnss3-dev

$ apt-get install libnss3-dev
$ dpkg -s libnss3
Package: libnss3
Version: 2:3.28.4-0ubuntu0.14.04.3

在命令行上重试:

$ google-chrome --headless "http://example.com"
$ echo $?
0

果然,一旦无头Chrome在命令行上工作,它也开始在Selenium工作。

这些是我目前使用的版本:

$ google-chrome --version
Google Chrome 62.0.3202.94
$ chromedriver --version
ChromeDriver 2.33.506092
$ $ pip freeze |grep selenium
selenium==3.7.0

答案 1 :(得分:1)

它在debian系统中对我有用。添加以下内容。

chrome_options.add_argument('--no-sandbox')

我在debian中安装了apt-get install -y chromium

答案 2 :(得分:0)

当您尝试在无头模式下打开Chrome浏览器时,您无需创建任何额外设置或符号链接。将chromedriver保存/存储在系统的任何位置,并按绝对路径访问该位置。要包含参数 --headless ,您需要获取 Options 类的帮助,并在初始化 webdriver时传递该对象对象如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
driver.quit()

控制台输出:

Page Title is : Google

答案 3 :(得分:0)

我在centos7.1上遇到了同样的问题,因为我是root用户,并在添加代码chrome_options.add_argument('--no-sandbox')

后解决了

这是我的代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://www.google.com/')
print driver.current_url
driver.quit()