【问题标题】:Chrome failed to start when running selenium on Linux server在 Linux 服务器上运行 selenium 时 Chrome 无法启动
【发布时间】:2019-05-20 15:22:22
【问题描述】:

在 Linux 服务器上使用 chrome 驱动程序版本 74 运行 Selenium 时出现异常(如下)。它在 Windows 上运行得很好

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

我可以通过在 ChromeOptions 中添加“--headless”来防止此错误,但是在以无头模式运行 Selenium 时无法找到某些元素。我当前的 ChromeOptions 用作下面的示例。

options = new ChromeOptions();
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--user-data-dir=something");
options.addArguments("--start-maximized");

我是 Linux 初学者,谁能帮我知道是否可以在 Linux 服务器上运行 headful Selenium 以及如何做到这一点?

【问题讨论】:

  • 您应该也可以在无头模式下找到所有元素。你有找不到的例子吗?
  • @AdiOhana 在无头模式下缺少的元素是 div 元素,我通过 xpath 选择(类似于 *//div[@id='xxx'])。在我使用 headless Firefox 而不是 chrome(仍然在 Linux 上运行)之后,selenium 可以找到我需要的每个元素。但是,了解无头 chrome 的问题是什么以及是否也可以在 Linux 中谨慎运行会很有用。
  • 可以在带有 GUI 的 Linux 机器上运行带有 selenium webdriver 的 Chrome,这有点复杂,我曾经按照这篇文章做过:tecadmin.net/setup-selenium-chromedriver-on-ubuntu 如果你可以分享一些 HTML 示例,我可以帮助解决无头 Chrome 问题
  • Chrome 位于 Linux 上的四个位置之一。您是否正在查找/使用 Chrome 可执行文件?我在无头配置中驱动 Chrome 的 Python 代码使用 this 来定位 Chrome。然后是设置options.binary_location = get_chrome()

标签: java linux selenium selenium-chromedriver


【解决方案1】:

我可以建议你重新安装你的 chrome 并使用 WebDriver Manager,你不需要指明二进制文件的位置: 对于 Java - https://github.com/bonigarcia/webdrivermanager 对于 Python - https://github.com/SergeyPirogov/webdriver_manager

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多