无头模式下Chrome浏览器无法运行(Ubuntu 18.04)。

问题描述 投票:0回答:1

所以我正在开发一个脚本,从一个动态网页中抓取一些数据,并将其提交到我的数据库表中。为此,我使用了Python中的Selenium。在我重启系统之前,一切工作都很顺利,但现在chrome只能在无头模式下工作。现在chrome只在无头模式下工作,当我注释掉那个选项,以便看到chrome浏览器的实际窗口时,我得到了这个错误信息。

selenium.common.exceptions.WebDriverException。消息:未知错误。 Chrome未能启动:异常退出。 未知错误:DevToolsActivePort文件不存在)(从chrome位置usrbingoogle-chrome启动的进程不再运行,所以ChromeDriver假设Chrome已经崩溃)。

snapshot of the code

尝试过的解决方案。

  • 交叉检查我的chrome-binaries路径,它是有效的。
  • 改变了添加选项的顺序
  • 卸载了chrome,又重新安装了一遍
  • 删掉chromedriver,重新下载
  • 重启了两次系统
  • 在谷歌上搜索了该错误并尝试了解决方案

EDIT: 我已经尝试过添加--no-sandbox选项,然后在这里注释出来,如快照所示。

有一点我想说的是,我的根空间比较少,只剩下340mb的可用空间。这影响吗?

python selenium google-chrome selenium-chromedriver
1个回答
0
投票

要查看chrome浏览器的实际窗口,请删除参数。-headless 是完美的。

然而,我建议删除所有不需要的选项,然后用最小的代码行执行你的测试,如下所示。

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

chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument('start-maximized')
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=chrome_options, executable_path=r'C:\path\to\chromedriver.exe')
driver.get("http://google.com/")

如果你看到的错误是

selenium.common.exceptions.WebDriverException: 消息:未知错误。Chrome失败启动:异常退出。未知错误:DevToolsActivePort文件不存在)(从chrome位置usrbingoogle-chrome启动的进程不再运行,所以ChromeDriver假设Chrome已经崩溃)。

你可能需要添加参数 --no-sandbox.

所以解决的办法就是加回论点。

chrome_options.addArguments("--no-sandbox");
chrome_options.addArguments("--disable-dev-shm-usage");

你可以在下面的文章中找到详细的讨论 WebDriverException: unknown error: 在尝试启动Chrome浏览器时,DevToolsActivePort文件不存在。


其他考虑因素

确保。

  • Selenium 提升到当前水平 3.141.59版本.
  • 浏览器驱动程序 更新为当前的 ChromeDriver v83.0 级别。
  • 浏览器 更新为当前的 浏览器83.0版 级。(根据 ChromeDriver v83.0发布说明)
  • 如果你的基地 网络客户端 版本太旧了,那就卸载它,然后安装一个最新的GA和发布版本的 网络客户端.
  • 清洁 你的 项目工作区 通过你 集成开发环境重建 您的项目只包含所需的依赖关系。
  • 如果您的基础 网络客户端 版本太旧了,那就卸载它,然后安装一个最新的GA和发布版本的 网络客户端.
  • 采取 系统重启.
  • 执行你的 @Test 作为 非根 用户。

参考文献

你可以在以下地方找到详细的讨论。

© www.soinside.com 2019 - 2024. All rights reserved.