1

MavenプロジェクトでWebDriverManagerを使用してChromeDriverを開くときに例外が発生します。MavenプロジェクトでWebDriverManagerを使用してChromeDriverを実行すると例外が発生する

私が計画しているフレームワークは、pom.xmlに依存関係を追加した後でChromeDriverをWebDriverManagerから取得する傾向があり、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) 

このコードを実行:

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(); 
     } 
    } 
} 

あなたが解決策を見つけるために知っておく必要がある多くのものがある場合はお知らせください。

答えて

2

Guavaにバージョンの競合があります。 Selenium WebDriver(WebDriverManagerではなく)は、Guavaの特定のバージョンの移行に依存しており、プロジェクトで別のバージョンを使用しているようです。私は両方の最新バージョンを使用します。

+0

これは、Guavaの現在のバージョンがguava-21.0.jarです。 – Travsam

+0

私はその間に回避策がありますか?前もって感謝します。 – Travsam

関連する問題