我正试图在带有selenium和python的Linux Centos 7服务器上使用无头chrome。我在尝试激活驱动程序时遇到以下错误:
Traceback (most recent call last):
File "send_notif_marktplaats.py", line 128, in <module>
main()
File "send_notif_marktplaats.py", line 117, in main
driver = activate_driver()
File "send_notif_marktplaats.py", line 42, in activate_driver
driver = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver", chrome_options=optionsChrome)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created
from disconnected: unable to connect to renderer
(Session info: headless chrome=80.0.3987.116)
我的版本:
- Chromedriver版本80.0.3987.106
- 谷歌铬80.0.3987.116
有人能帮我吗?
此错误消息。。。
selenium.common.exceptions.SessionNotCreatedException: Message: session not created
from disconnected: unable to connect to renderer
(Session info: headless chrome=80.0.3987.116)
意味着ChromeDriverv80.0无法启动/生成新的浏览上下文,即Chrome浏览器会话。
根据讨论,WebDriver 80.0.3987.16无法在Linux上打开Chrome。@triciac
更新了这一点,ChromeDriver v80.0的实现按以下顺序查找Chrome:
- locations->push_back(base::FilePath("/usr/local/sbin"((
- locations->push_back(base::FilePath("/usr/local/bin"((
- locations->push_back(base::FilePath("/usr/sbin"((
- locations->push_back(base::FilePath("/usr/bin"((
- locations->push_back(base::FilePath("/sbin"((
- locations->push_back(base::FilePath("/bin"((
- locations->push_back(base::FilePath("/opt/google/chrome"((;//最后一次尝试使用默认安装位置
@johnchen
证实,Linux上的二进制搜索顺序被r708243意外更改,这是为了更容易配置Chrome二进制文件的名称,但也意外更改了搜索顺序。
ChromeDriver团队已更新ChromeDriver,以通过此次修订/提交解决此问题。
解决方案
上述解决方案可用于:
- ChromeDriver v80.0.3987.106
- ChromeDriver v81.0.4044.20
临时解决方案
一个临时解决方案是使用binary_location
属性,您可以在Selenium:WebDriverException中找到详细的讨论:Chrome无法启动:由于谷歌Chrome不再运行而崩溃,因此ChromeDriver假设Chrome已崩溃