响应代码 500。消息:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 114

Sun*_*nny 2 selenium-webdriver selenium-java

我在设置网络驱动程序时遇到了这个问题。我必须将 Chrome 更新到 116.0.5845.97。这就是我的行家的样子:

<dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.10.0</version>
</dependency>
<dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>5.4.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

设置 chrome 选项并最终创建网络驱动程序的代码:

if (browserName.equals("chrome")) {
                WebDriverManager.chromedriver().setup();
                ChromeOptions chromeOptions = new ChromeOptions();
                chromeOptions.addArguments(new String[]{"--incognito"});
                chromeOptions.addArguments(new String[]{"window-size=1980,1080"});
                chromeOptions.addArguments(new String[]{"--remote-allow-origins=*"});
                this.driver = new ChromeDriver(chromeOptions);
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Starting ChromeDriver 114.0.5735.90 (386bc09e8f4f2e025eddae123f36f6263096ae49-refs/branch-heads/5735@{#1052}) on port 9006
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.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 116.0.5845.97 with binary path C:\Program Files (x86)\Google\Chrome\Application\chrome.exe 
Run Code Online (Sandbox Code Playgroud)

我无法解决这个问题,因此联系了这里的专家。

Sha*_*awn 6

两个问题:

  1. Seleniumv4.10.0仅支持CDP 114,这意味着如果您的浏览器版本是116,那么您需要升级 selenium 来4.11.0 更新 POM ,如下所示。
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.11.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
  1. 如果您使用的是 seleniumv4.6.0及以上版本,则不需要WebDriverManager更多。Selenium 现在有一个内置工具来处理驱动程序。从您的代码中删除以下行,您不需要它。
WebDriverManager.chromedriver().setup();
Run Code Online (Sandbox Code Playgroud)