問題描述
我正在嘗試在 Python 腳本中運(yùn)行 webdriver,當(dāng)腳本嘗試運(yùn)行 google chrome 時,它??會以狀態(tài)碼 11 退出.
I am trying to run webdriver in a Python script, and when the script tries to run google chrome it exits with status code 11.
這里是python腳本:
Here is the python script:
#!/usr/bin/python3
import time
from selenium import webdriver
driver = webdriver.Chrome('/usr/bin/google-chrome') # Optional argument, if not specified will search path.
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
這是完整的輸出:
[ec2-user@ip-xxx-xx-xx-xxx pythonscrape]$ python3 test-selenium-chrome.py
Traceback (most recent call last):
File "test-selenium-chrome.py", line 5, in <module>
driver = webdriver.Chrome('/usr/bin/google-chrome') # Optional argument, if not specified will search path.
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
self.service.start()
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 98, in start
self.assert_process_still_running()
File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 111, in assert_process_still_running
% (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/google-chrome unexpectedly exited. Status code was: -11
有誰知道為什么我的腳本在嘗試運(yùn)行 google chrome 時會報(bào)告錯誤代碼 11?
Does anyone know why my script reports the error code 11 when trying to run google chrome?
推薦答案
這個錯誤信息...
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/google-chrome unexpectedly exited. Status code was: -11
...暗示 ChromeDriver 無法正確啟動/生成新的 Browsing Context 即 Chrome 瀏覽器 會話.
...implies that the ChromeDriver was unable to initiate/spawn the new Browsing Context i.e. Chrome Browser session properly.
看來你快到了.webdriver.Chrome()
的默認(rèn)參數(shù)是 ChromeDriver 二進(jìn)制文件的絕對路徑.但是,根據(jù)最佳實(shí)踐,您必須同時發(fā)送 Key 和 Value,如下所示:
Seems you were almost there. The default argument for webdriver.Chrome()
is the absolute path of the ChromeDriver binary. However, as per best practices you must send both the Key and the Value as follows:
driver = webdriver.Chrome(executable_path='/path/to/chromedriver') # Optional argument, if not specified will search path
此外,如果您需要傳遞 Chrome 二進(jìn)制文件的絕對路徑,您必須通過 chrome.options
如下:
Further, if you need to pass the absolute path of the Chrome binary you have to use the binary_location
property through an instance of chrome.options
as follows:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.binary_location = '/path/to/chrome'
driver = webdriver.Chrome(options=options, executable_path='/path/to/chromedriver')
driver.get('http://google.com/')
<小時>
參考
您可以在以下位置找到詳細(xì)討論:
Reference
You can find a detailed discussion in:
- Selenium: WebDriverException:Chrome啟動失敗:由于 google-chrome 不再運(yùn)行而崩潰,因此 ChromeDriver 假設(shè) Chrome 已崩潰
這篇關(guān)于WebDriverException:消息:服務(wù)/usr/bin/google-chrome 意外退出.狀態(tài)代碼是:-11 with ChromeDriver Chrome through Selenium Python的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!