【发布时间】: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