2017-08-23 1 views
-1

ich in Selen einfachen Code leite und wirft es unter Ausnahme: -Unable Browser in Selenium öffnen

@Test 
public void test(){ 

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

Nach Fehler angezeigt wird, wenn ich mein Skript ausgeführt haben:

Früher war es funktioniert, Meine Firefox-Version ist 55 und ich verwende die neueste Gecko-Treiberversion. Bitte helfen Sie !!

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

Es scheint, wie Sie diesen Code von einigen sind kopieren, wo sonst und vergessen die Zeichenfolge 'webdriver.chrome.driver' zu' webdriver.gecko.driver' –

Antwort

1

Sie verwenden falsche Syntax in der Nähe von "System.setProperty (" webdriver.chrome.driver " "geckodriver.exe");". Ersetzen "chrome.driver" mit "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(); 
} 

ersetzen es mit

@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

@ iamasnkalp89 ersetzen: - oops mein Fehler i korrigiert mein Code: - \t ‚@Test \t public void Test() { \t \t \t \t System.setProperty ("webdriver.gecko.driver", "geckodriver.exe"); \t \t WebDriver-Treiber = neu FirefoxDriver(); \t \t driver.get ("https://google.com"); \t \t driver.manage(). Window(). Maximize(); \t \t \t} aber es wirft immer noch denselben Fehler. –

+0

Welchen Fehler bekommst du? – iamsankalp89

0

Der Fehler

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

ist Java Weg, Ihnen zu sagen, dass Ihre Code ruft intern eine Methode namens

auf
void checkState(boolean, java.lang.String, java.lang.Object) 

innerhalb der Klasse com.google.common.base.Preconditions, aber diese Methode ist nicht verfügbar.

Dies passiert normalerweise, wenn Ihr Klassenpfad durcheinander ist.

Sie haben nicht erwähnt, mit welcher Version von Selenium Sie arbeiten. Ich gehe also davon aus, dass Sie mit der neuesten freigegebenen Version von Selen viz., 3.5.2 arbeiten.

Bitte stellen Sie sicher, dass Sie com.google.guava:guava Version 23.0 verwenden.

Wenn Sie Maven verwenden, können Sie Ihrer Pom-Datei möglicherweise eine Abhängigkeit hinzufügen, die wie folgt aussieht.

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

: - Danke !! Ja, ich benutze 3.5.2 Selen Version und ich habe auch oben erwähnte Abhängigkeiten in meiner pom.xml hinzugefügt, aber es löst immer noch denselben Fehler aus. –

+0

Die Reihenfolge der Abhängigkeiten ist wichtig in Maven. Bitte versuchen Sie, diese Abhängigkeit als erste hinzuzufügen.Sie können versuchen, 'mvn dependency: tree' auszuführen, um herauszufinden, welche Ihrer Abhängigkeiten eine ältere Guava-Version enthält, und Ausschlüsse entsprechend hinzufügen –

Verwandte Themen