I am getting an exception when trying to open the ChromeDriver using WebDriverManager in a Maven project.
The framework I am planning is tended to pull the ChromeDriver from WebDriverManager after adding the dependency in the pom.xml and is intended to use Gauge to perform the tests.
The error occurs at the moment it tries to create a new instance for the ChromeDriver when running the tests.
Here is the exception:
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)
When running this code:
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 WebDriver instance
private WebDriver webDriver;
@BeforeSuite
public static void initializeDriver(){
ChromeDriverManager.getInstance().setup();
}
@BeforeSpec
public void setupTest(){
webDriver = new ChromeDriver();
}
--test code--
@AfterSuite
public void closeDriver(){
if (webDriver != null) {
webDriver.quit();
}
}
}
Please inform me if there is something more you need to know to find a solution.