Chrome 使用 chromedriver2.9 在 CentOS 上启动失败
Posted
技术标签:
【中文标题】Chrome 使用 chromedriver2.9 在 CentOS 上启动失败【英文标题】:Chrome failed to start on CentOS using chromedriver2.9 【发布时间】:2014-07-02 10:30:59 【问题描述】:环境:chromedriver 2.9、google-chrome-stable 34、python 2.6、CentOS6.4 final x86_64
我按照install-chrome.sh 安装 google-chrome-stable(不是 chromium)。它可能会从fedoraproject 中提取软件包并将这些软件包安装到/opt/google/chrome/lib
。我按照link 安装chromedriver2.9。我可以手动运行 google-chrome 和 chromedriver 而不会出错。我通过pip install selenium
(selenium 2.41) 安装 selenium。 Selenium 安装到/usr/lib/python2.6/site-packages/
。以这种方式安装的 Google-chrome 似乎不允许以 root 身份打开。
当我在 python 控制台下以非 root 用户运行代码时:
>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
它返回错误消息如下而不是打开chrome。
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "/usr/lib/python2.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 65, in __init__
keep_alive=True)
File "/usr/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 72, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/usr/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 115, in start_session
'desiredCapabilities': desired_capabilities,
File "/usr/lib/python2.6/site-packages/selenium/webdriver/remote/webdriver.py", line 166, in execute
self.error_handler.check_response(response)
File "/usr/lib/python2.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 164, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: u'unknown error: Chrome failed to start: crashed\n (Driver info: chromedriver=2.9.248304,platform=Linux 2.6.32-358.el6.x86_64 x86_64)'
我得到日志跟随链接Unknown error: Chrome failed to start: exited abnormally。该链接上没有解决方案。我该怎么办?谢谢。
[0.987][INFO]: COMMAND InitSession
"desiredCapabilities":
"browserName": "chrome",
"chromeOptions":
"args": [ ],
"extensions": [ ]
,
"javascriptEnabled": true,
"platform": "ANY",
"version": ""
,
"sessionId": null
[0.987][INFO]: Populating Preferences file:
"alternate_error_pages":
"enabled": false
,
"autofill":
"enabled": false
,
"browser":
"check_default_browser": false
,
"distribution":
"import_bookmarks": false,
"import_history": false,
"import_search_engine": false,
"make_chrome_default_for_user": false,
"show_welcome_page": false,
"skip_first_run_ui": true
,
"dns_prefetching":
"enabled": false
,
"profile":
"content_settings":
"pattern_pairs":
"https://*,*":
"media-stream":
"audio": "Default",
"video": "Default"
,
"default_content_settings":
"geolocation": 1,
"mouselock": 1,
"notifications": 1,
"popups": 1,
"ppapi-broker": 1
,
"password_manager_enabled": false
,
"safebrowsing":
"enabled": false
,
"search":
"suggest_enabled": false
,
"translate":
"enabled": false
[0.988][INFO]: Populating Local State file:
"background_mode":
"enabled": false
,
"ssl":
"rev_checking":
"enabled": false
[0.988][INFO]: Launching chrome: /opt/google/chrome/google-chrome --disable-background-networking --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-hang-monitor --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-logging --full-memory-crash-report --ignore-certificate-errors --load-extension=/tmp/.com.google.Chrome.NnyvZ9/internal --logging-level=1 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=12775 --safebrowsing-disable-auto-update --safebrowsing-disable-download-protection --use-mock-keychain --user-data-dir=/tmp/.com.google.Chrome.AtCYvH data:,
[0.989][DEBUG]: DevTools request: http://127.0.0.1:12775/json/version
[0.991][WARNING]: PAC support disabled because there is no system implementation
[1.034][DEBUG]: DevTools request failed
[1.084][DEBUG]: DevTools request: http://127.0.0.1:12775/json/version
[1.085][DEBUG]: DevTools request failed
[1.135][DEBUG]: DevTools request: http://127.0.0.1:12775/json/version
[1.136][DEBUG]: DevTools request failed
.....
.....
[61.022][DEBUG]: DevTools request: http://127.0.0.1:12775/json/version
[61.024][DEBUG]: DevTools request failed
[61.024][INFO]: RESPONSE InitSession unknown error: Chrome failed to start: crashed
[61.025][DEBUG]: Log type 'driver' lost 0 entries on destruction
[61.025][DEBUG]: Log type 'browser' lost 0 entries on destruction
我也对那些DevTools
的事情感到困惑。
【问题讨论】:
我错过了什么吗?你是说 Selenium WebDriver 2.9.0 吗?这是令人难以置信的旧版本库。 我下载了chromedriver here。它应该是最新的。 抱歉,Chromedriver 2.9。不是webdriver2.9。我已经编辑过了。 尝试用this简单说明安装谷歌浏览器。 【参考方案1】:你在使用无头吗?如果是这样,您将不得不通过pyvirtualdisplay
指定无头显示。
当我在没有告诉 selenium 使用视觉显示的情况下运行 selenium 时,我遇到了同样的错误(日志)。安装pyvirtualdisplay
后,以下代码对我有用:
from selenium import webdriver
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
driver = webdriver.Chrome()
driver.get("http://www.google.com")
print driver.page_source.encode('utf-8')
driver.quit()
display.stop()
【讨论】:
以上是关于Chrome 使用 chromedriver2.9 在 CentOS 上启动失败的主要内容,如果未能解决你的问题,请参考以下文章
7 款实用 Chrome 扩展推荐:帮你提升 Chrome 使用体验
7 款实用 Chrome 扩展推荐:帮你提升 Chrome 使用体验
如何使用变量的值作为键名在 chrome 扩展中使用 chrome.storage?
[chrome-debug]如何使用chrome调试你的移动设备