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。
我看到这个错误:
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。