这是复制该问题的代码。在 chromedriver 114 之前,这一切都工作正常,但当 chrome 浏览器升级到 116 时,它就崩溃了。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
public class ChromeTest {
public static void main(String args[]) {
WebDriverManager.chromedriver().setup();
WebDriver driver = new ChromeDriver();
driver.get("https://www.google.com/");
String title = driver.getTitle();
System.out.println(title);
driver.quit();
}
}
Run Code Online (Sandbox Code Playgroud)
该错误表明库无法访问 116 的版本文件
automation selenium-chromedriver selenium-webdriver webdrivermanager-java
尝试在 Maven 项目中使用 WebDriverManager 打开 ChromeDriver 时出现异常。
我计划的框架倾向于在 pom.xml 中添加依赖项后从 WebDriverManager 中提取 ChromeDriver,并打算使用 Gauge 执行测试。
在运行测试时尝试为 ChromeDriver 创建新实例时发生错误。
这是例外:
Error Message: java.lang.NoSuchMethodError: com.google.common.util.concurrent.SimpleTimeLimiter.create(Ljava/util/concurrent/ExecutorService;)Lcom/google/common/util/concurrent/SimpleTimeLimiter;
Stacktrace:
org.openqa.selenium.net.UrlChecker.<init>(UrlChecker.java:64)
org.openqa.selenium.remote.service.DriverService.waitUntilAvailable(DriverService.java:187)
org.openqa.selenium.remote.service.DriverService.start(DriverService.java:178)
org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:78)
org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:646)
org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:255)
org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:237)
org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:138)
org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:178)
org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:167)
org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:124)
StepTests.setupTest(StepTests.java:26)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.thoughtworks.gauge.execution.MethodExecutor.execute(MethodExecutor.java:38)
com.thoughtworks.gauge.execution.HooksExecutor$TaggedHookExecutor.executeHook(HooksExecutor.java:102)
com.thoughtworks.gauge.execution.HooksExecutor$TaggedHookExecutor.execute(HooksExecutor.java:88)
com.thoughtworks.gauge.execution.HooksExecutor.execute(HooksExecutor.java:45)
com.thoughtworks.gauge.processor.MethodExecutionMessageProcessor.executeHooks(MethodExecutionMessageProcessor.java:65)
com.thoughtworks.gauge.processor.SpecExecutionStartingProcessor.process(SpecExecutionStartingProcessor.java:32)
com.thoughtworks.gauge.connection.MessageDispatcher.dispatchMessages(MessageDispatcher.java:89)
com.thoughtworks.gauge.GaugeRuntime.dispatchMessages(GaugeRuntime.java:104)
com.thoughtworks.gauge.GaugeRuntime.access$100(GaugeRuntime.java:36)
com.thoughtworks.gauge.GaugeRuntime$2.run(GaugeRuntime.java:85)
java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
运行此代码时:
import com.thoughtworks.gauge.*;
import io.github.bonigarcia.wdm.ChromeDriverManager;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import com.thoughtworks.gauge.Step;
import static org.junit.Assert.assertEquals;
public class StepTests {
//Holds the …Run Code Online (Sandbox Code Playgroud) maven gauge selenium-chromedriver getgauge webdrivermanager-java
我正在使用 Web 驱动程序管理器来设置 chrome 驱动程序。设置驱动程序时我想添加一些chrome 选项?使用 Web 驱动程序管理器时我该怎么做?
我检查了 WebDriverManager API 但找不到任何线索..
java automated-tests selenium-chromedriver webdrivermanager-java
我正在远程 Jenkins Linux 机器上运行我的 Selenium CI 测试。我也在使用 WebDriverManager 来管理 Chromedriver。
远程 Chrome 版本为 79.0.3945.88。这是我无权更改的内容。当 Chrome 版本从 78 更新时,我开始收到警告
07:26:19 [1579242379.444][WARNING]: This version of ChromeDriver has not been tested with Chrome version 79.
Run Code Online (Sandbox Code Playgroud)
所以我更新了 Chromedriver
WebDriverManager.chromedriver().version("79.0.3945.88").setup();
Run Code Online (Sandbox Code Playgroud)
但我会得到
09:02:35 09:02:35.908 [main] DEBUG i.g.bonigarcia.wdm.WebDriverManager - The proper chromedriver version for your Google Chrome is unknown ... trying with the latest
09:02:37 09:02:36.999 [main] DEBUG i.g.bonigarcia.wdm.WebDriverManager - Latest version of chromedriver according to https://chromedriver.storage.googleapis.com/LATEST_RELEASE is 79.0.3945.36
09:02:37 09:02:37.030 [main] INFO i.g.bonigarcia.wdm.WebDriverManager - …Run Code Online (Sandbox Code Playgroud) continuous-integration webdriver selenium-chromedriver selenium-webdriver webdrivermanager-java
我正在使用Vividus工具进行 Web UI 测试似乎无法检测到已安装Chrome的正确版本;我有版本 83.0.4103.61 的 Chrome 和 io.github.bonigarcia.wdm.WebDriverManager 报告检测到版本 81,结果测试没有开始。
日志
io.github.bonigarcia.wdm.WebDriverManager - Using chromedriver 81.0.xxxxx.xx (since Chrome 81 is installed in your machine)
Run Code Online (Sandbox Code Playgroud)
2020-05-27 17:20:25,179 [batch-1-thread-1] INFO org.vividus.bdd.log.LoggingStoryReporter - Given I am on the main application page (FAILED)
(org.openqa.selenium.SessionNotCreatedException: session not created: This version of ChromeDriver only supports Chrome version 81
Build info: version: '4.0.0-alpha-1', revision: 'd1d3728cae', time: '2019-04-24T13:42:21'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '13'
Driver info: driver.version: ChromeDriver …Run Code Online (Sandbox Code Playgroud) 我不知道我做错了什么,但由于某种原因,尽管我使用 WebDriverManager,但它无法找到 chrome 二进制文件。我将日志放在下面以供参考,但据说它找不到二进制文件(或者无法下载二进制文件?)我到处都发现了类似的问题,但似乎没有一个解决方案有效。
设置
WebDriverManager.chromedriver()
.targetPath("/tmp")
.setup();
ChromeOptions options = new ChromeOptions();
options.addArguments(
"--no-sandbox",
"--disable-gpu",
"--enable-javascript",
"disable-infobars",
"--disable-dev-shm-usage",
"--disable-extensions",
"--headless",
"--user-data-dir=/tmp/user-data",
"--data-path=/tmp/data-path",
"--homedir=/tmp",
"--disk-cache-dir=/tmp/cache-dir",
"window-size=1400,600",
"log-level=3");
this.driver = (WebDriver) new ChromeDriver(options);
this.driver.manage().deleteAllCookies();
this.driver.manage().window().fullscreen();
Run Code Online (Sandbox Code Playgroud)
聚甲醛
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.10.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.webdriver</groupId>
<artifactId>webdriver-common</artifactId>
<version>0.9.7376</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.7.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
日志
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Nov 01, 2019 9:41:27 AM java.util.prefs.FileSystemPreferences$1 run
WARNING: Couldn't create …Run Code Online (Sandbox Code Playgroud) java selenium selenium-chromedriver aws-lambda webdrivermanager-java
我有一个 Spring Boot 应用程序,我想用 Selenium 进行测试。我正在使用 WebDriverManager v5.0.3
设置 WebDriver 时WebDriverManager.chromedriver().setup();出现异常:
java.lang.NoClassDefFoundError: org/openqa/selenium/internal/Require
Run Code Online (Sandbox Code Playgroud)
或者
java.lang.ClassNotFoundException: org.openqa.selenium.internal.FindsById
Run Code Online (Sandbox Code Playgroud)
我的 pom.xml 包含以下内容:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>4.1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud) selenium selenium-webdriver webdriver-manager webdrivermanager-java
我正在尝试在 Maven 和 Java 项目中使用 Selenium 和 PhantomJS。
以下是我在 pom.xml 文件中使用的依赖项:
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>2.53.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server-standalone</artifactId>
<version>2.53.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>1.4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>jenkins-releases</id>
<url>http://repo.jenkins-ci.org/releases/</url>
</repository>
</repositories>`
Run Code Online (Sandbox Code Playgroud)
在我的 Java 文件中,我尝试使用以下方法设置 PhantomJS 驱动程序,而我的计算机上没有 JAR 文件:
public void set_up(){
PhantomJsDriverManager.getInstance().setup();
// Configuration du driver
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setJavascriptEnabled(true);
driver = new PhantomJSDriver(capabilities);
}
Run Code Online (Sandbox Code Playgroud)
当我第一次尝试这个时,它运行良好,但一两个星期后,我收到了这个错误:
public void set_up(){
PhantomJsDriverManager.getInstance().setup();
// Configuration du driver
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setJavascriptEnabled(true);
driver = …Run Code Online (Sandbox Code Playgroud) 我已经在我的 pom.xml 文件中更新了 WebDrivermanager 的依赖项。在像下面这样在我的本地运行代码时,它似乎工作正常。
driver = new ChromeDriver(capability);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用 RemoteWebDriver 远程运行代码时,它失败并不断要求为浏览器添加二进制文件
URL remote_grid = new URL("http://" + seleniumHub + ":" + seleniumHubPort + "/wd/hub");
driver = new RemoteWebDriver(remote_grid, capability);
Run Code Online (Sandbox Code Playgroud)
它抛出以下异常。
[Invoker 1386767190] Keeping method SeleniumInit.setUp(java.lang.reflect.Method, org.testng.ITestContext)[pri:0, instance:com.wo2.commonfucntion.index.LoginIndex@598067a5] for class [TestClass name=class com.wo2.commonfucntion.index.LoginIndex]
[Invoker 1386767190] Keeping method SeleniumInit.tearDown(org.testng.ITestResult)[pri:0, instance:com.wo2.commonfucntion.index.LoginIndex@598067a5] for class [TestClass name=class com.wo2.commonfucntion.index.LoginIndex]
[Invoker 1386767190] Keeping method SeleniumInit.setUp(java.lang.reflect.Method, org.testng.ITestContext)[pri:0, instance:com.wo2.commonfucntion.index.LoginIndex@598067a5] for class [TestClass name=class com.wo2.commonfucntion.index.LoginIndex]
[Invoker 1386767190] Invoking @BeforeMethod SeleniumInit.setUp(java.lang.reflect.Method, org.testng.ITestContext)[pri:0, instance:com.wo2.commonfucntion.index.LoginIndex@598067a5]
13:27:40.503 [main] INFO i.g.bonigarcia.wdm.BrowserManager - Reading https://chromedriver.storage.googleapis.com/ …Run Code Online (Sandbox Code Playgroud) java ×3
automation ×2
selenium ×2
aws-lambda ×1
gauge ×1
getgauge ×1
maven ×1
phantomjs ×1
vividus ×1
webdriver ×1