2016-10-01 2 views
0

Ich muss einfach Autotest mit ChromeDriver mit Maven erstellen.Wie können Selenium WebDriver-Testfälle in Chrome mit Maven ausgeführt werden?

Auszug aus pom.xml:

<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-java</artifactId> 
    <version>2.53.1</version> 
</dependency> 

Testfall:

@BeforeTest 
public void StartBrowser_NavURL() { 
    driver = new ChromeDriver(); 
    driver.manage().window().maximize(); 
} 

@AfterTest 
public void CloseBrowser() { 
    driver.quit(); 
} 

@Test 
public void testToCompareDoubles() { 
    driver.get("http://www.google.com"); 
} 

Und nach dem Test läuft Ausführung Befehl

mvn -test 

ich die folgende Ausnahme:

ja va.lang.IllegalStateException: Der Pfad zur ausführbaren Treiberdatei muss durch die Systemeigenschaft webdriver.chrome.driver festgelegt werden. Weitere Informationen finden Sie unter https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. Die neueste Version kann von http://chromedriver.storage.googleapis.com/index.html unter com.google.common.base.Preconditions.checkState (Preconditions.java:199) bei org.openqa.selenium.remote.service.DriverService.findExecutable (DriverService.java:109) heruntergeladen werden bei org.openqa.selenium.chrome.ChromeDriverService.access $ 000 (ChromeDriverService.java:32) bei org.openqa.selenium.chrome.ChromeDriverService $ Builder.findDefaultExecutable (ChromeDriverService.java:137) bei org.openqa.selenium .remote.service.DriverService $ Builder.build (DriverService.java:296) bei org.openqa.selenium.chrome.ChromeDriverService.createDefaultService (ChromeDriverService.java:88) bei org.openqa.selenium.chrome.ChromeDriver. (ChromeDriver.java:116) bei com.testTask.GoogleTest.StartBrowser_NavURL (GoogleTest.java:26) bei org.apache.maven.surefire.testng.TestNGExecutor.run (TestNGExecutor.java:77) bei org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute (TestNGDirectoryTestSuite.java:110) bei org.apache.maven.surefire.testng.TestNGProvider.invoke (TestNGProvider.java:106) bei org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray (ReflectionUtils.java:189) bei org.apache .maven.surefire.booter.ProviderFactory $ ProviderProxy.invoke (ProviderFactory.java:165) bei org.apache.maven.surefire.booter.ProviderFactory.invokeProvider (ProviderFactory.java:85) bei org.apache.maven.surefire .booter.ForkedBooter.runSuitesInProcess (ForkedBooter.java:115) bei org.apache.maven.surefire.booter.ForkedBooter.main (ForkedBooter.ja va: 75) ... Entfernt 23 Stapelrahmen

Ich habe gelesen Diskussion accesible unten über den Link: How to run Selenium WebDriver test cases in Chrome?

Aber ich kann nicht ausführbare Dateien auf meinem Server herunterladen. Also, es ist keine Option für mich. Aber Maven lädt "selen-chrome-driver-2.53.1.jar" auf den Server (was für mich in Ordnung ist).

Gibt es eine Möglichkeit, eine heruntergeladene .jar-Datei anstelle einer ausführbaren Datei zu verwenden?

P.S. Für dieses Projekt verwende ich IntelliJ Idea Community Edition und ich bin kein Experte damit

Antwort

1

Sie haben eine Antwort in der geworfenen Ausnahme. Legen Sie den Pfad zum ausführbaren Chrome-Treiber fest, bevor Sie den Treiber initialisieren.

System.setProperty("webdriver.chrome.driver", "path to your chrome driver executable") 

können Sie Chrom Treiber herunterladen ausführbare Datei von der untenstehenden Link und legen Sie sie an die gewünschte Position:

https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver

Editiert:

Wenn Sie nicht wollen, die Chrom-Treiber zum Download manuell dann fügen Sie Abhängigkeit wie folgt hinzu.

<dependency> 
    <groupId>io.github.bonigarcia</groupId> 
    <artifactId>webdrivermanager</artifactId> 
    <version>1.4.9</version> 
</dependency> 

Dies wird die neueste Version des Treiber herunterladen und den richtigen Java-Systemvariable mit dem Befehl festlegen:

ChromeDriverManager.getInstance().setup(); 
+0

Noch einmal: Ich habe keine Berechtigung, um ausführbare Dateien zum Download bereit. – Eugene

+0

Was bedeutet das? Sie benötigen einen ausführbaren Chrome-Treiber, um Tests auf Chrome auszuführen. –

+0

Ihr Tipp funktioniert: Meine Tests werden nach dem Download von "chromedriver.exe" ausgeführt. Aber all diese Dinge sollen mit einem einzigen Maven-Befehl ausgeführt werden (z.B.: mvn-test). Und ich weiß nicht, ob Maven Dateien aus dem Internet herunterladen könnte oder nicht. Also, ich suche nach einer Lösung, die die Menge der heruntergeladenen externen Dateien minimiert. Ansonsten sollte ich zu den Interessengruppen gehen, um neu zu verhandeln. – Eugene

Verwandte Themen