Selenium:无法为 Chromedriver 97 创建新的远程会话

Selenium: Unable to create new remote session for Chromedriver 97

我看到这个错误:

Starting ChromeDriver 97.0.4692.71 (adefa7837d02a07a604c1e6eff0b3a09422ab88d-refs/branch-heads/4692@{#1247}) on port 17892
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: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, chromeOptions=org.openqa.selenium.chrome.ChromeOptions@1b550c0, version=, platform=ANY}], required capabilities = Capabilities [{}]
Build info: version: '3.3.1', revision: '5234b325d5', time: '2017-03-10 09:10:29 +0000'
System info: host: 'censored', ip: 'censored', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_311'
Driver info: driver.version: ChromeDriver
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:126)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:604)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:244)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:178)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:167)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:124)
    at com.testing.test.automation.controller.AutomationController.process(AutomationController.java:91)
    at com.onsemi.fast.automation.controller.AutomationController.run(AutomationController.java:64)
    at java.lang.Thread.run(Thread.java:748)

主要代码:

System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
    //File bin = new File("phantomjs.exe");
    //System.setProperty("phantomjs.binary.path", bin.getAbsolutePath());
    //WebDriver driver = new PhantomJSDriver();
    WebDriver driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.get(data.getUrl());

当我使用 PhantomJSDriver 时它工作正常但是当我使用 Chrome 甚至 firefox 时它从上面得到错误。它只是打开一个空白 chrome window 但没有指向我给定的 url.

作为参考,这是我的 pom.xml,我目前正在弄清楚这是否只是因为版本问题,但请帮忙:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.testing.test</groupId>
    <artifactId>automation</artifactId>
    <version>2.0.0-SNAPSHOT</version>
    <name>automation</name>
    <description>Selenium Testing</description>
    <properties>
        <java.version>1.8</java.version>
        <version.junit-platform-suite>1.3.2</version.junit-platform-suite>
        <version.maven.surefire>2.19.1</version.maven.surefire>
        <version.thymeleaf.java8time>3.0.2.RELEASE</version.thymeleaf.java8time>
        <version.spring.thymeleaf>2.3.5.RELEASE</version.spring.thymeleaf>
        <selenium.version>3.3.1</selenium.version>
        <selenium-htmlunit.version>2.26</selenium-htmlunit.version>
        <htmlunit.version>2.26</htmlunit.version>
        <version.oracle>12.1.0.2</version.oracle>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-java8time</artifactId>
            <version>${version.thymeleaf.java8time}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
            <version>${version.spring.thymeleaf}</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
        </dependency>
        <dependency>
          <groupId>io.github.bonigarcia</groupId>
          <artifactId>webdrivermanager</artifactId>
          <version>4.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
    
        <!-- Oracle -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>${version.oracle}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- excel -->
        <dependency>
            <groupId>net.sourceforge.jexcelapi</groupId>
            <artifactId>jxl</artifactId>
            <version>2.6</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${version.maven.surefire}</version>
            </plugin>
        </plugins>
    </build>

</project>

我正在使用一个特定的(给定的)存储库,这就是为什么有些版本不是最新的。但你们中的一些人可能有想法。我已经搜索了一些类似的问题,但答案与我的情况不同。顺便说一句,为了以防万一,我审查了 ip 和主机。

经过数小时的研究,我已经使用 Selenium Grid 解决了这个问题。 pom.xml 中的版本无关紧要,只要您使用 selenium grid magic。