代码之家  ›  专栏  ›  技术社区  ›  spider22

硒。常见的例外情况。WebDriverException:消息:未知错误:在ubuntu上执行selenium python脚本时,chrome无法启动

  •  4
  • spider22  · 技术社区  · 6 年前

    我正在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。十、
    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)
    
    3 回复  |  直到 6 年前
        1
  •  4
  •   undetected Selenium    6 年前

    此错误消息。。。

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

    。。。意味着您的 网络客户端 镀铬 无法启动。

    解决方案

    你需要通过 钥匙 可执行文件路径 以及 价值 指的是 镀铬驱动器 通过单正斜杠,即。 \ 以及生的,即。 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客户端 版本太旧,请通过卸载 Revo Uninstaller 并安装最新的GA和发布版本 Web客户端
    • 采取行动 系统重启
    • 执行您的 @Test
        2
  •  2
  •   Manmohan_singh    6 年前

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

    因为,您正在使用 chromedriver=2.38.551591

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

    您的chromedriver版本可与 chrome浏览器版本>67.xx

    你可以参考这个 page 兼容性参考。

        3
  •  0
  •   carloseduleal    6 年前

    下面的代码适用于我在相同的环境中工作(但我的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)
    

    检查它是否适合您:)