2017-08-30 124 views
2

我想使用headless chromeselenium,我創建了路徑chromedriver到/ usr/local/bin下一個符號,但是當我運行WebDriverException:消息:未知錯誤:Chrome瀏覽器無法啓動:墜毀

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 

誰能幫我找出什麼是錯的嗎?

+0

請參閱:[傳遞驅動程序ChromeOptions和DesiredCapabilities](https:// stackoverflow。com/questions/23834413/pass-driver-chromeoptions-and-desiredcapabilities) – RetardedJoker

回答

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 
+0

我得到了同樣的錯誤,當我初始化webdriver時,發生了錯誤。 –

+0

@DannyHuang您可以使用您當前的代碼塊以及完整的錯誤堆棧和Selenium,chr​​omedriver和Chrome版本更新問題嗎? – DebanjanB

+0

我使用了您建議測試的代碼,並在剛剛更新時獲取了錯誤堆棧。 –

0

我在Ubuntu 14.04上無法正常工作的Chrome出現問題,但它遇到同樣的unknown error: Chrome failed to start: crashed錯誤,我將其追溯到依賴關係pr 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 
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() 
相關問題