当前位置: 首页 > 知识库问答 >
问题:

Chrome 在没有无外设模式的情况下无法运行 (Ubuntu 18.04)

尉迟雅昶
2023-03-14

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

selenium.common.exceptions。WebDriverException:消息:未知错误:Chrome无法启动:异常退出。(未知错误:devtoolsativeport文件不存在)(从chrome位置/usr/bin/google chrome启动的进程不再运行,因此ChromeDriver假设chrome已经崩溃。)

尝试的解决方案:

  • 交叉检查了我的chrome-binaries的路径,它是有效的
  • 更改了添加选项的顺序
  • 卸载了铬并重新安装了它
  • 删除了 chromedriver 并再次下载
  • 已重新启动系统两次
  • 谷歌错误并尝试了解决方案

编辑:在注释掉之前,我已经尝试添加了- no-sandbox选项,如快照所示

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

共有1个答案

倪鸿禧
2023-03-14

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

但是,我建议删除所有不需要的选项并使用最少的代码行执行您的测试,如下所示:

from selenium import webdriver from 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无法启动:异常退出。(未知错误:devtoolsativeport文件不存在)(从chrome位置/usr/bin/google chrome启动的进程不再运行,因此ChromeDriver假设chrome已经崩溃。)

您可能需要添加参数< code> - no-sandbox。

因此,解决方案是添加回参数:

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

您可以在WebDriverException中找到详细的讨论:未知错误:尝试启动Chrome浏览器时DevToolsActivePort文件不存在

确保:

    < li>Selenium升级到当前版本3.141.59。 < li>ChromeDriver更新到当前的ChromeDriver v83.0版本。 < li>Chrome已更新到当前的Chrome版本83.0级别。(根据ChromeDriver v83.0发行说明) < li >如果您的基本Web客户端版本太旧,请将其卸载并安装最新的GA和发布版本的Web客户端。 < li >通过IDE清理项目工作区,并仅使用所需的依赖项重新生成项目。 < li >如果您的基本Web客户端版本太旧,请将其卸载并安装最新的GA和发布版本的Web客户端。 < li >重新启动系统。 < li >以非超级用户身份执行您的< code>@Test。

您可以在以下网站找到详细讨论:

  • Selenium: WebDriverException: Chrome启动失败:由于google-chrome不再运行而崩溃,因此ChromeDriver假设Chrome已崩溃
 类似资料:
  • 我试着去看其他的代码例子,但是它们和我的代码比较相似,但是我的应用程序仍然会因为同样的错误而崩溃。 这是我使用firebase文档的指导方针编写的代码: 上面的代码正在将otp发送到给定的号码,但是它崩溃了,并且cat-log显示了上面提到的错误。

  • 文档说这个库运行在GPU上。如果我功能强大的笔记本电脑没有GPU,我还能运行Deeplearning4J吗?

  • 我有一个代码,可以从Swing应用程序中获取拖动事件。然后,代码将元素放入JavaFX表视图中。 如果我在调试模式下运行,这段代码可以很好地工作。但如果调试用完了,它就不起作用。 我知道错误在“MyClassObject res=(MyClassObject)db.getContent(customFormat);”行,因为失败时返回的异常是“java.lang.String不能转换为MyClas

  • 我试图在调试模式下启动我的android应用程序,但每次我检查它说这是错误的。更进一步,在buildtypes中定义的buildconfigField甚至不会显示在BuildConfig中。 这是我的gradle文件: 因此,在Android Studio中,我为我的应用程序选择了build Variant“debug”,但当我在应用程序中点击一个断点并检查的值时,无法解析字段,并且无法解析

  • 我在想怎样才能 1) 如何在没有GUI的情况下直接在Eclipse中运行模型——只需像在Eclipse中运行其他java代码一样运行模型,然后打印出我感兴趣的内容。 2)如何在没有Eclipse的情况下在无头模式下运行它-我计划将我的模型部署在远程服务器中,服务器或我自己的PC可以在一天中的特定时间自动运行模型。 3) 每次更改代码时,我都必须启动一个新的GUI以反映代码的更改。打开GUI至少需要

  • 问题内容: 我在服务器中提取,配置并使用了make作为安装包。 但是,我无法使用 make install 。我得到错误 我运行文件夹 我仍然遇到相同的错误。 如何在没有sudo访问的情况下运行 make install ? 问题答案: 如何安装到主目录下的路径? 然后运行: 同样,如果您的脚本(例如CGI)需要您自己的Python用户版本,则必须明确告诉它们: 而不是使用默认的系统Python,