Selenium:WebDriverException:Chrome无法启动:由于google-chrome不再运行而崩溃,因此ChromeDriver假设Chrome已崩溃

SOe*_*Oeh 27 python selenium google-chrome selenium-chromedriver selenium-webdriver

我知道这个问题有几个答案,但到目前为止我没有任何帮助,所以我发布了一个新问题.

最近我换了电脑,从那时起我不能用硒发射铬.我也试过firefox但浏览器只是没有lanch.

from selenium import webdriver

d = webdriver.Chrome('/home/PycharmProjects/chromedriver')

d.get('https://www.google.nl/')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
  (Driver info: chromedriver=2.43.600233, platform=Linux 4.15.0-38-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

我安装了最新的chrome版本和chromedriver

编辑:尝试@ b0sss解决方案后,我收到以下错误.

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (chrome not reachable)
  (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so chromedriver is assuming that Chrome has crashed.)
  (Driver info: chromedriver=2.43.600233 (523efee95e3d68b8719b3a1c83051aa63aa6b10d),platform=Linux 4.15.0-38-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

Ngo*_*ong 34

尝试下载HERE并使用最新的Chrome驱动程序版本.

https://sites.google.com/a/chromium.org/chromedriver/downloads

编辑:

试试这个:

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
d = webdriver.Chrome('/home/PycharmProjects/chromedriver',chrome_options=chrome_options)
d.get('https://www.google.nl/')
Run Code Online (Sandbox Code Playgroud)

  • 确保“--no-sandbox”选项是第一个(与此示例不同,其中第一个选项是“--headless”。我一直收到该错误,直到我将“--no-sandbox”移至列表顶部,将其添加为第一个选项。 (8认同)
  • 注意:`from selenium.webdriver.chrome.options import Options` (5认同)
  • 据我所知 `--no-sandbox` chrome options 参数就足够了 (2认同)

dat*_*ews 13

希望这有助于某人。这在 Ubuntu 18.10 上对我有用

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument('--no-sandbox')
driver = webdriver.Chrome('/usr/lib/chromium-browser/chromedriver', options=chrome_options)
driver.get('http://www.google.com')
print('test')
driver.close()
Run Code Online (Sandbox Code Playgroud)


Deb*_*anB 12

此错误消息...

selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /opt/google/chrome/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Run Code Online (Sandbox Code Playgroud)

...暗示ChromeDriver无法启动/产生新的WebBrowser,Chrome浏览器会话。

您的主要问题是系统中的默认位置未安装Chrome浏览器。

伺服器(例如ChromeDriver)希望您将Chrome安装在每个系统的预设位置,如下图所示:

Chrome_binary_expected_location

1对于Linux系统,ChromeDriver /usr/bin/google-chrome应该是实际Chrome二进制文件的符号链接。


如果您在非标准位置使用Chrome可执行文件,则必须覆盖Chrome二进制位置。如下:

  • Python解决方案:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.binary_location = "C:\\path\\to\\chrome.exe"
    driver = webdriver.Chrome(chrome_options = options, executable_path=r'C:\path\to\chromedriver.exe')
    driver.get('http://google.com/')
    print("Chrome Browser Invoked")
    driver.quit()
    
    Run Code Online (Sandbox Code Playgroud)
  • Java解决方案:

Chrome可执行文件位于非标准位置

  • 设置chrome二进制文件有效。给你最好的答案。另外,还完全删除了Chrome / Chromedriver / Pycharm,然后重新安装了所有功能,因此现在还没有设置的Chrome二进制文件。 (2认同)

iba*_*alf 8

我遇到了在 docker 容器上运行的确切问题(在构建环境中)。ssh进入容器后,我尝试手动运行测试,仍然遇到

(unknown error: DevToolsActivePort file doesn't exist)
     (The process started from chrome location /usr/bin/google-chrome-stable is 
      no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Run Code Online (Sandbox Code Playgroud)

当我尝试在本地运行 chrome 时/usr/bin/google-chrome-stable,出现错误消息

Running as root without --no-sandbox is not supported
Run Code Online (Sandbox Code Playgroud)

我检查了我的 ChromeOptions 并且它丢失了--no-sandbox,这就是它无法生成 chrome 的原因。

capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
  chromeOptions: { args: %w(headless --no-sandbox disable-gpu window-size=1920,1080) }
)
Run Code Online (Sandbox Code Playgroud)


Pan*_*arn 7

对于机器人框架

我解决了!使用--no-sandbox

${chrome_options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys, selenium.webdriver
Call Method    ${chrome_options}    add_argument    test-type
Call Method    ${chrome_options}    add_argument    --disable-extensions
Call Method    ${chrome_options}    add_argument    --headless
Call Method    ${chrome_options}    add_argument    --disable-gpu
Call Method    ${chrome_options}    add_argument    --no-sandbox
Create Webdriver    Chrome    chrome_options=${chrome_options}
Run Code Online (Sandbox Code Playgroud)

代替

Open Browser    about:blank    headlesschrome
Open Browser    about:blank    chrome
Run Code Online (Sandbox Code Playgroud)


Rog*_*lio 5

就我而言,错误发生在 www-data 用户身上,但与开发中的普通用户无关。该错误是为此用户初始化 x 显示时出现的问题。因此,问题在运行我的硒测试时得到解决,无需打开浏览器窗口,无头:

opts.set_headless(True)
Run Code Online (Sandbox Code Playgroud)


Eth*_*ill 5

我遇到了类似的问题,并发现选项参数必须按一定顺序排列。我只知道在Ubuntu 18机器上运行此功能所需的两个参数。此示例代码对我有效:

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

options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

d = webdriver.Chrome(executable_path=r'/home/PycharmProjects/chromedriver', chrome_options=options)
d.get('https://www.google.nl/')
Run Code Online (Sandbox Code Playgroud)

  • 使用 --no--sandbox 选项不是存在安全问题吗? (2认同)

小智 5

一个没有人说过但对我有用的简单解决方案是在没有 root 的情况下运行sudo或不以 root 身份运行。


归档时间:

查看次数:

38919 次

最近记录:

5 年,9 月 前