首页 > 解决方案 > 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]

标签: seleniumselenium-webdriverselenium-chromedriver

解决方案


--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");

完整的工作示例在这里

  1. 使用命令启动 chrome 浏览器 C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\autoprofile"

  2. 连接浏览器的代码是:-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());
          }    
    

    }


推荐阅读