SessionNotCreatedException:消息:会话不是从断开连接创建的:无法在Linux Centos 7



我正试图在带有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

  1. locations->push_back(base::FilePath("/usr/local/sbin"((
  2. locations->push_back(base::FilePath("/usr/local/bin"((
  3. locations->push_back(base::FilePath("/usr/sbin"((
  4. locations->push_back(base::FilePath("/usr/bin"((
  5. locations->push_back(base::FilePath("/sbin"((
  6. locations->push_back(base::FilePath("/bin"((
  7. 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已崩溃

最新更新