java - 在 Selenium 中运行 headless Chrome 会抛出 "unknown error: DevToolsActivePort file doesn' t 存在”

标签 java google-chrome selenium selenium-webdriver google-chrome-headless

当尝试在 Selenium 中运行 Headless Chrome 时,我遵循了 this示例,并编写了以下代码:

  ChromeOptions chromeOptions = new ChromeOptions();
  chromeOptions.addArguments("--headless");
  driver = new ChromeDriver(chromeOptions);

但是运行代码时出现此错误:

The path to the driver executable must be set by the webdriver.chrome.driver system property

所以我将其添加到代码中:

chromeOptions.setBinary(System.getProperty("webdriver.chrome.driver"));

我将参数发送到程序: webdriver.chrome.driver=C:\\chromedriver_win32\\chromedriver.exe

但后来我得到了这个:

Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 47772
Only local connections are allowed.
Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 9515
Only local connections are allowed.
Invalid --log-level value.
Unable to initialize logging. Exiting...

所以我添加了日志记录设置:

 System.setProperty("webdriver.chrome.logfile", "C:\\chromedriver_win32\\chromedriver.log");
 System.setProperty("webdriver.chrome.verboseLogging", "true");
 chromeOptions.setCapability("--log-level", "WARNING");

但这似乎没有帮助,因为错误是:

Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 43365
Only local connections are allowed.
Starting ChromeDriver 2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e) on port 9515
Only local connections are allowed.
Invalid --log-level value.
Unable to initialize logging. Exiting...
Caused by: org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: was killed
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location C:\\chromedriver_win32\\chromedriver.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
(Driver info: chromedriver=2.41.578737 (49da6702b16031c40d63e5618de03a32ff6c197e),platform=Windows NT 10.0.16299 x86_64) (WARNING: The server did not provide any stacktrace information)

所以看来当前的问题是unknown error: DevToolsActivePort file doesn't exist

最佳答案

要设置网络驱动程序的位置,您可以使用它

System.setProperty("webdriver.chrome.driver","location-driver"); //before 'new ChromeDriver...'

您尝试过 headless 运行

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
driver = new ChromeDriver(chromeOptions);

关于java - 在 Selenium 中运行 headless Chrome 会抛出 "unknown error: DevToolsActivePort file doesn' t 存在”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51859799/

相关文章:

java - Dagger 自定义范围,如何?

java - Selenium WebDriver Java 代码无法在 eclipse 上执行 : Could not find the main class

java - 为什么RecyclerView在BottomNavigationView下面?

google-chrome - Chrome错误: margin-bottom to the browser edge?

javascript - 如何记录错误,就像未捕获错误一样?

javascript - jQuery 错误 - 将事件从 iframe 绑定(bind)到 parent.window

python - 如何使用python Selenium 转到youtube播放列表中的下一个视频

java - innerhtml 中的对象未被 selenium webdriver 识别

java - 如何找到运行 Servlet 的主机和端口

java - Spring Security 的 Thymeleaf 授权不起作用