【问题标题】:selenium.WebDriverException: chrome not reachableselenium.WebDriverException:无法访问 chrome
【发布时间】:2021-06-26 19:09:08
【问题描述】:

我有一个 C++ 应用程序 application.exe,它使用 CEF 浏览器(chrome 嵌入式框架)作为 UI。

对于这个 UI,我想用 Selenium 开发自动化测试。通常我通过 Java 控制 Selenium。

下面是我得到的堆栈跟踪:

Starting ChromeDriver 91.0.4472.101 (af52a90bf87030dd1523486a1cd3ae25c5d76c9b-refs/branch-heads/4472@{#1462}) on port 36815
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

org.openqa.selenium.WebDriverException: chrome not reachable
Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z'
System info: host: 'NO1010042072000', ip: '10.42.72.0', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '15.0.2'
Driver info: driver.version: ChromeDriver
remote stacktrace: Backtrace:
    Ordinal0 [0x006C3733+2504499]
    Ordinal0 [0x0065C401+2081793]
    Ordinal0 [0x005624F0+1058032]
    Ordinal0 [0x005574B5+1012917]
    Ordinal0 [0x0058005B+1179739]
    Ordinal0 [0x0057C58C+1164684]
    Ordinal0 [0x00579DC3+1154499]
    Ordinal0 [0x005A9B82+1350530]
    Ordinal0 [0x005A97DA+1349594]
    Ordinal0 [0x005A5D4B+1334603]
    Ordinal0 [0x005822B4+1188532]
    Ordinal0 [0x00583149+1192265]
    GetHandleVerifier [0x0083FB8C+1512252]
    GetHandleVerifier [0x008EB0DF+2214031]
    GetHandleVerifier [0x00744BC3+484211]
    GetHandleVerifier [0x00743E69+480793]
    Ordinal0 [0x0066218D+2105741]
    Ordinal0 [0x006666E8+2123496]
    Ordinal0 [0x00666827+2123815]
    Ordinal0 [0x0066FB73+2161523]
    BaseThreadInitThunk [0x74EAFA29+25]
    RtlGetAppContainerNamedObjectPath [0x77037C7E+286]
    RtlGetAppContainerNamedObjectPath [0x77037C4E+238]

我的代码sn-p:

System.setProperty("webdriver.chrome.driver", "C:\\Users\\Administrator\\Desktop\\chromedriver_win32\\chromedriver.exe");
        
        
    ChromeOptions options = new ChromeOptions();
        
    options.setBinary(<cef_workflow_path>);
        
WebDriver chDriver = new ChromeDriver(options);
    
    
    
     
sleep(3000);
    
chDriver.findElement(By.id("EmailPage-EmailField"));
       
WebElement email = chDriver.findElement(By.id("EmailPage-EmailField"));
         
System.out.println(email.isDisplayed());
       
email.clear();
     
email.sendKeys(userName);

【问题讨论】:

    标签: selenium selenium-webdriver selenium-chromedriver chromium-embedded


    【解决方案1】:

    在将 URL 传递给驱动程序之前,我看到您正在尝试访问网页上的 Web 元素。
    你需要先

    chDriver.get(yourURLLink);
    

    只有在那之后,当页面加载时尝试访问元素

    chDriver.findElement(By.id("EmailPage-EmailField"));
    
    

    等等

    【讨论】:

    • 应用程序将打开嵌入式浏览器页面,因此我添加了睡眠。并且在该页面中打开的 url 将是动态的。
    【解决方案2】:

    你能检查一下吗,我希望它对你有用

    ChromeOptions option = new ChromeOptions();
        
        option.addArguments(new ArrayList<String>() {
            {
                add("--no-sandbox");
                add("--disable-gpu-sandbox");
                
            }
        });
        
        WebDriver driver = new ChromeDriver(option);
    

    【讨论】:

    • 否,添加参数无效。同样的错误。
    猜你喜欢
    • 2017-06-27
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 2015-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多