【问题标题】:selenium.common.exceptions.WebDriverException: Message: unknown error: chrome failed to start while executing selenium python script on ubuntuselenium.common.exceptions.WebDriverException:消息:未知错误:在 ubuntu 上执行 selenium python 脚本时,chrome 无法启动
【发布时间】:2018-04-19 22:50:54
【问题描述】:

我在 ubuntu 上运行 python3 脚本

import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')  # Last I checked this was necessary.
driver = webdriver.Chrome("/home/admin/web/web.com/public_html/scripts/az/chromedriver", chrome_options=options)

以普通用户身份运行,我收到以下错误:

$ python3 getStock.py
Traceback (most recent call last):
File "getStock.py", line 61, in <module>
    driver = webdriver.Chrome("/home/admin/web/web.com/public_html/scripts/az/chromedriver", chrome_options=options)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/chrome/webdriver.py", line 75, in __init__
    desired_capabilities=desired_capabilities)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__
    self.start_session(desired_capabilities, browser_profile)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: chrome failed to start
(Driver info: chromedriver=2.38.551591 (bcc4a2cdef0f6b942b2bb8049068f65340fa2a69),platform=Linux 4.2.0-042stab120.16 x86_64)

也尝试使用 sudo;我仍然收到以下错误

$ sudo python3 getStock.py
[sudo] password for admin:
Traceback (most recent call last):
File "getStock.py", line 61, in <module>
    driver = webdriver.Chrome("/home/admin/web/web.com/public_html/scripts/az/chromedriver", chrome_options=options)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/chrome/webdriver.py", line 75, in __init__
    desired_capabilities=desired_capabilities)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 154, in __init__
    self.start_session(desired_capabilities, browser_profile)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 243, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/webdriver.py", line 312, in execute
    self.error_handler.check_response(response)
File "/usr/local/lib/python3.5/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.38.551591 (bcc4a2cdef0f6b942b2bb8049068f65340fa2a69),platform=Linux 4.2.0-042stab120.16 x86_64)

不确定发生了什么?我试过关注;

  1. 我已尝试更新 selenium;
  2. 我尝试过以 python 2.x 和 python 3.x 运行
  3. 我已尝试以普通用户身份运行脚本 和 sudo 用户
  4. 我已尝试将权限更改为 chmod 777

这是我的版本:

Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:        16.04
Codename:       xenial

Python 3.5.2
Requirement already satisfied: selenium in /usr/local/lib/python3.5/dist-packages (3.11.0)

【问题讨论】:

  • options.add_argument('--no-sandbox')能解决吗?
  • 对我来说这是一个间歇性问题。关闭所有其他浏览器实例并重新运行程序修复它。我不认为r 作为提到的公认答案对python3 有很大影响

标签: python selenium ubuntu selenium-webdriver selenium-chromedriver


【解决方案1】:

此错误消息...

selenium.common.exceptions.WebDriverException: Message: unknown error: chrome failed to start

...表示您的 WebClient Chrome 无法启动。

解决方案

您需要传递 Key executable_path 以及 Value 引用 ChromeDriver 的绝对路径通过单个正斜杠,即\ 以及原始的,即r 开关,如下所示:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
#options.add_argument('--disable-gpu')  # applicable to windows os only
driver = webdriver.Chrome(chrome_options=options, executable_path=r'/home/admin/web/web.com/public_html/scripts/az/chromedriver')

其他步骤

  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 使用CCleaner 工具在执行测试套件之前和之后清除所有操作系统杂务。
  • 如果您的基础 Web Client 版本太旧,请通过 Revo Uninstaller 卸载它并安装最新的 GA 和发布版本的 Web Client
  • 进行系统重启
  • 执行您的@Test

【讨论】:

    【解决方案2】:

    真正的错误是 unknown error: Chrome failed to start: exited abnormally

    因为,您使用的是chromedriver=2.38.551591

    只需确保您使用的 chromedriver 版本是否与本地计算机上安装的 chrome 浏览器相关。

    您的 chromedriver 版本适用于 chrome 浏览器版本 > 67.xx

    您可以参考此page 以获取兼容性参考。

    【讨论】:

      【解决方案3】:

      下面的这段代码在相同的环境中为我工作(但我的 chromedriver 版本是 2.36):

      options = Options()
      options.add_experimental_option("detach", True)
      options.add_argument("--window-position=0,0")
      options.add_argument("--headless")
      driver = webdriver.Chrome("path", chrome_options=options)
      

      检查它是否适合你:)

      【讨论】:

        猜你喜欢
        • 2019-02-27
        • 1970-01-01
        • 2020-11-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-20
        • 2020-10-16
        • 1970-01-01
        • 2020-04-16
        相关资源
        最近更新 更多