selenium - org.openqa.selenium.WebDriverException:未知错误:Chrome 无法启动:运行并行执行时显示错误消息
问题描述
org.openqa.selenium.WebDriverException:未知错误:Chrome 无法启动:配置 --remote-debugging-port=9222 chrome 选项后运行并行执行时显示错误消息。如何解决这个问题?
注意:(未知错误:DevToolsActivePort 文件不存在)如果未配置会显示错误消息 --remote-debugging-port=9222 chrome 选项,所以我在 chrome 选项中添加了远程调试端口
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setPageLoadStrategy(PageLoadStrategy.NONE);
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--start-maximized");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--disable-infobars");
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("--disable-browser-side-navigation");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--disable-notifications");
chromeOptions.addArguments("--remote-debugging-port=9222");
chromeOptions.addArguments("--disable-extensions");
chromeOptions.setExperimentalOption("useAutomationExtension", false);
chromeOptions.addArguments("allow-running-insecure-content");
chromeOptions.addArguments("--ignore-certificate-errors");
driver = new ChromeDriver(chromeOptions);
错误信息 :
org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: crashed.
(The process started from chrome location C:\Program Files (x86)\Google\Chrome\Application\chrome.exe is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'fffffff', ip: 'xyz', os.name: 'Windows Server 2016', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_231'
Driver info: driver.version: ChromeDriver
remote stacktrace: Backtrace:
Ordinal0 [0x00B30C83+1707139]
Ordinal0 [0x00A968F1+1075441]
Ordinal0 [0x00A0DFC9+516041]
Ordinal0 [0x0099D373+54131]
Ordinal0 [0x009BBFD7+180183]
Ordinal0 [0x009BBDDD+179677]
Ordinal0 [0x009B9D4B+171339]
Ordinal0 [0x009A1D4A+73034]
Ordinal0 [0x009A2DC0+77248]
Ordinal0 [0x009A2D59+77145]
Ordinal0 [0x00AABB67+1162087]
GetHandleVerifier [0x00BCA966+508998]
GetHandleVerifier [0x00BCA6A4+508292]
GetHandleVerifier [0x00BDF7B7+594583]
GetHandleVerifier [0x00BCB1D6+511158]
Ordinal0 [0x00AA402C+1130540]
Ordinal0 [0x00AAD4CB+1168587]
Ordinal0 [0x00AAD633+1168947]
Ordinal0 [0x00AC5B35+1268533]
BaseThreadInitThunk [0x770362C4+36]
RtlSubscribeWnfStateChangeNotification [0x77411E39+1081]
RtlSubscribeWnfStateChangeNotification [0x77411E04+1028]
解决方案
--remote-debugging-port=9222
当您尝试在已在此端口 9222 上运行的 chrome 浏览器上运行测试时,将使用此选项
同样是错误消息,说 chrome.exe 没有运行
org.openqa.selenium.WebDriverException:未知错误:Chrome 无法启动:崩溃。(从 chrome 位置 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe 开始的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。)
所以看看你的测试用例它在做什么,我相信你正在尝试捕获已经在运行的 chrome 节点注册到网格。
所以这可能也需要
cp.setExperimentalOption("debuggerAddress", "127.0.0.1:9222");
完整的工作示例在这里
使用命令启动 chrome 浏览器 C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\autoprofile"
连接浏览器的代码是:-package com.example;导入 org.openqa.selenium.By;导入 org.openqa.selenium.chrome.ChromeDriver;导入 org.openqa.selenium.chrome.ChromeOptions;
public class ChromeDebugger { public static void main(String[] args) throws InterruptedException { ChromeOptions cp = new ChromeOptions(); cp.setExperimentalOption("debuggerAddress", "127.0.0.1:9222"); System.setProperty("webdriver.chrome.driver", "./src/test/resources/drivers/chromedriver.exe"); ChromeDriver driver = new ChromeDriver(cp); System.out.println(driver.getTitle()); driver.findElement(By.linkText("About")).click(); System.out.println(driver.getTitle()); }
}
推荐阅读
- python - Statsmodels AutoRegression 回测代码有效性
- django - 如何过滤指向自身的外键
- python - 当数据有点混乱时使用 datetime.strptime :额外的空格,一月或一月
- javascript - 使用 Jquery 更改 HTML 表格背景
- r - ggplot boxplot - 无法让我的情节工作,没有绘制“盒子”
- android - Flutter syncfusion_flutter_calendar如何获取特定日期的约会列表
- azure - 想在 azure AD 中获得过去 30 天来宾帐户的最后一次登录
- css - 在 Scss 中的 @if 内使用 CSS 变量
- php - php get_headers 对于我可以输入浏览器的 URL 失败
- javascript - 在发送给 Datadog 的 k6 指标中包含测试运行 ID