WebDriverException:消息:服务/usr/bin/google-chrome意外退出.状态代码为:-11和ChromeDriver Chrome通过Selenium Python [英] WebDriverException: Message: Service /usr/bin/google-chrome unexpectedly exited. Status code was: -11 with ChromeDriver Chrome through Selenium Python

查看:316
本文介绍了WebDriverException:消息:服务/usr/bin/google-chrome意外退出.状态代码为:-11和ChromeDriver Chrome通过Selenium Python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Python脚本中运行webdriver,并且当脚本尝试运行google chrome时,它会以状态代码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

有人知道为什么我的脚本在尝试运行Google Chrome时会报告错误代码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 无法正确启动/产生新的浏览上下文,即 Chrome浏览器会话.

...implies that the ChromeDriver was unable to initiate/spawn the new Browsing Context i.e. Chrome Browser session properly.

似乎您快到了. webdriver.Chrome()的默认参数是 ChromeDriver 二进制文件的绝对路径.但是,按照最佳做法,您必须同时发送 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 二进制文件的绝对路径,则必须通过chrome.options的实例使用binary_location属性,如下所示:

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/')


参考

您可以在以下位置找到详细的讨论:


Reference

You can find a detailed discussion in:

这篇关于WebDriverException:消息:服务/usr/bin/google-chrome意外退出.状态代码为:-11和ChromeDriver Chrome通过Selenium Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆