2017-08-23 8 views
-1

をブラウザを開くことができません: - 私は私のスクリプトを実行したとき私はセレンで簡単なコードを実行しているし、それは例外の下にスローセレン

@Test 
public void test(){ 

System.setProperty("webdriver.chrome.driver", "geckodriver.exe"); 
WebDriver driver=new FirefoxDriver(); 
driver.get("https://google.com"); 
driver.manage().window().maximize(); 
} 

次のエラーが表示さ:

以前は働いていました、私のFirefoxのバージョンは55です。私は最新のgeckoドライババージョンを使用しています。助けてください!!

Exception is:- java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:136) at org.openqa.selenium.firefox.GeckoDriverService.access$000(GeckoDriverService.java:41) at org.openqa.selenium.firefox.GeckoDriverService$Builder.usingFirefoxBinary(GeckoDriverService.java:108) at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:204) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:103) at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:99) at newTab.Tab.test(Tab.java:16) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:104) at org.testng.internal.Invoker.invokeMethod(Invoker.java:645) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:851) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1177) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) at org.testng.TestRunner.privateRun(TestRunner.java:756) at org.testng.TestRunner.run(TestRunner.java:610) at org.testng.SuiteRunner.runTest(SuiteRunner.java:387) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:382) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:340) at org.testng.SuiteRunner.run(SuiteRunner.java:289) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1293) at org.testng.TestNG.runSuitesLocally(TestNG.java:1218) at org.testng.TestNG.runSuites(TestNG.java:1133) at org.testng.TestNG.run(TestNG.java:1104) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:236) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:81)

+0

あなたが他にどこ一部から、このコードをコピーして 'iamasnkalp89 @ –

答えて

1

あなたは"するSystem.setProperty(" webdriver.chrome.driver " "geckodriver.exe")の近くに間違った構文を使用しています。""gecko.driver"

@Test public void test(){ 
System.setProperty("webdriver.chrome.driver", "geckodriver.exe");  
WebDriver driver=new FirefoxDriver(); 
driver.get("https://google.com"); 
driver.manage().window().maximize(); 
} 

"chrome.driver"を交換し、エラー

Exception is:- java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState(ZLjava/lang/String;Ljava/lang/Object;)V at 

があなたのことを伝えるのJavaの方法です

@Test public void test(){ 
System.setProperty("webdriver.gecko.driver", "geckodriver.exe"); 
WebDriver driver=new FirefoxDriver(); 
driver.get("https://google.com"); 
driver.manage().window().maximize(); 
} 
+0

をwebdriver.gecko.driver'にwebdriver.chrome.driver''から文字列を置換することを忘れているように思える: - 私は修正おっと私のミス私のコードに: - \t「@Test \tます。public voidテスト(){ \t \t \t \tするSystem.setProperty( "webdriver.gecko.driver"、 "geckodriver.exe"); \t \t WebDriverドライバ=新しいFirefoxDriver(); \t \t driver.get( "https://google.com"); \t \t driver.manage()。window()。maximize(); \t \t \t 'でも同じエラーが発生します。 –

+0

どのようなエラーが発生しますか? – iamsankalp89

0

に交換してくださいコードは内部で

というメソッドを呼び出しています
void checkState(boolean, java.lang.String, java.lang.Object) 

クラスcom.google.common.base.Preconditions内ですが、この方法は利用できません。

これは、通常、クラスパスが台無しになったときに発生します。

処理しているSeleniumのバージョンは記載していません。だから私はあなたがセレンの最新リリース版、3.5.2を使って作業していると仮定しようとしています。

com.google.guava:guavaバージョン23.0を使用していることを確認してください。

Mavenを使用している場合、おそらく以下のような依存関係をpomファイルに追加できます。

<dependency> 
    <groupId>com.google.guava</groupId> 
    <artifactId>guava</artifactId> 
    <version>23.0</version> 
</dependency> 
+0

: - ありがとう!はい私は3.5.2セレンのバージョンを使用して、私もpom.xmlで上記の依存関係を追加しましたが、それでも同じエラーがスローされます。 –

+0

依存関係の順序は重要です。この依存関係を最初のものとして追加してみてください。'mvn dependency:tree'を実行して、あなたの依存関係のうち古いグアババージョンを持ってきて、それに応じて除外を追加することができます –

関連する問題