【问题标题】:Chrome not running without headless mode (Ubuntu 18.04)Chrome 在没有无头模式的情况下无法运行(Ubuntu 18.04)
【发布时间】:2020-06-10 07:20:49
【问题描述】:

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

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

尝试过的解决方案:

  • 交叉检查了我的 chrome 二进制文件的路径,它是有效的
  • 更改了添加选项的顺序
  • 卸载 chrome 并重新安装
  • 删除了chromedriver并重新下载
  • 重启了我的系统两次
  • 搜索错误并尝试了解决方案

编辑:我已经尝试添加 --no-sandbox 选项,然后在此处将其注释掉,如快照所示

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

【问题讨论】:

    标签: python selenium google-chrome selenium-webdriver selenium-chromedriver


    【解决方案1】:

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

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

    从硒导入网络驱动程序 从 selenium.webdriver.chrome.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 位置 /usr/bin/google-chrome 启动的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。)

    您可能需要添加参数--no-sandbox

    所以解决办法是加回参数:

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

    您可以在WebDriverException: unknown error: DevToolsActivePort file doesn't exist while trying to initiate Chrome Browser找到详细讨论


    其他注意事项

    确保:

    • Selenium 升级到当前级别 Version 3.141.59
    • ChromeDriver 已更新到当前的ChromeDriver v83.0 级别。
    • Chrome 已更新至当前 Chrome 版本 83.0 级别。 (根据ChromeDriver v83.0 release notes
    • 如果您的基本 Web 客户端 版本太旧,请卸载它并安装最新的 GA 和发布版本的 Web 客户端
    • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
    • 如果您的基本 Web 客户端 版本太旧,请卸载它并安装最新的 GA 和发布版本的 Web 客户端
    • 进行系统重启
    • 非root用户身份执行@Test

    参考

    您可以在以下位置找到详细讨论:

    【讨论】:

    • 对不起,我忘了提到我确实尝试删除 --no-sandbox 参数,但没有成功
    • @HumaidKidwai 不需要删除,需要重新添加。
    猜你喜欢
    • 1970-01-01
    • 2018-08-12
    • 2023-01-22
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 2019-06-12
    • 2019-08-12
    相关资源
    最近更新 更多