2017-10-05 4 views
0

Hallo Ich versuche, Selenium-Skript mit Maven, TestNG in Eclipse zu laufen. Zuerst klicke ich mit der rechten Maustaste auf mein Projekt und wähle TestNG | In TestNG konvertieren (testing.xml wird erstellt). Dann gehe ich zu den Laufkonfigurationen und erstelle einen neuen Start TestNGl und klicke auf Ausführen. Wenn es ausgeführt habe ich diesen Fehler:FEHLERHAFTE KONFIGURATION: @BeforeTest beforeTest. MAFEN; TestNG, Selenium

[RemoteTestNG] erkannt TestNG Version 6.11.0 fehlerhafte Konfiguration: @BeforeTest beforeTest java.lang.IllegalStateException: Der Pfad zum Treiber ausführbar ist vom webdriver.chrome eingestellt wird. Treibersystem-Eigenschaft; 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:754) bei org.openqa.selenium.remote.service.DriverService.findExecutable (DriverService.java:124) 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:329) bei org.openqa.selenium.chrome.ChromeDriverService.createDefaultService (ChromeDriverService.java:88) bei org.openqa.selenium.chrome.ChromeDriver. (ChromeDriver.java:123) bei test.java.NewTest.beforeTest (NewTest.java:2 7) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei Java .lang.reflect.Method.invoke (Methode.java:498) bei org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108) bei org.testng.internal.Invoker.invokeConfigurationMethod (Invoker.java:523) bei org.testng.internal.Invoker.invokeConfigurations (Invoker.java:224) bei org.testng.internal.Invoker.invokeConfigurations (Invoker.java:146) bei org.testng.TestRunner.beforeRun (TestRunner.java : 626) bei org.testng.TestR unner.run (TestRunner.java:594) bei org.testng.SuiteRunner.runTest (SuiteRunner.java:380) bei org.testng.SuiteRunner.runSequentially (SuiteRunner.java:375) bei org.testng.SuiteRunner. privateRun (SuiteRunner.java:340) bei org.testng.SuiteRunner.run (SuiteRunner.java:289) bei org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) bei org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java:86) bei org.testng.TestNG.runSuitesSequentially (TestNG.java:1301) bei org.testng.TestNG.runSuitesLocally (TestNG.java:1226) bei org.testng.TestNG.runSuites (TestNG. java: 1144) bei org.testng.TestNG.run (TestNG.java:1115) bei org.testng.remote.AbstractRemote TestNG.run (AbstractRemoteTestNG.java:114) bei org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:251) bei org.testng.remote.RemoteTestNG.main (RemoteTestNG.java:77)

SKIPPED CONFIGURATION: @AfterTest afterTest Übersprungen: f java.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:754) bei org.openqa.selenium.remote.service.DriverService.findExecutable (DriverService.java:124) 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:329) bei org.openqa.selenium.chrome.ChromeDriverService.createDefaultService (ChromeDriverService.java:88) bei org.openqa.selenium.chrome.ChromeDriver. (ChromeDriver.java:123) bei test.java.NewTest.beforeTest (Newtest .java-: 27) bei sun.reflect.NativeMethodAccessorImpl.invoke0 (native Methode) bei sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) bei sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) bei java.lang.reflect.Method.invoke (Method.jav a: 498) bei org.testng.internal.MethodInvocationHelper.invokeMethod (MethodInvocationHelper.java:108) bei org.testng.internal.Invoker.invokeConfigurationMethod (Invoker.java:523) bei org.testng.internal.Invoker. invokeConfigurations (Invoker.java:224) bei org.testng.internal.Invoker.invokeConfigurations (Invoker.java:146) bei org.testng.TestRunner.beforeRun (TestRunner.java:626) bei org.testng.TestRunner. run (TestRunner.java:594) bei org.testng.SuiteRunner.runTest (SuiteRunner.java:380) bei org.testng.SuiteRunner.runSequentially (SuiteRunner.java:375) bei org.testng.SuiteRunner.privateRun (SuiteRunner.java:340) bei org.testng.SuiteRunner.run (SuiteRunner.java:289) bei org.testng.SuiteRunnerWorker.runSuite (SuiteRunnerWorker.java:52) bei org.testng.SuiteRunnerWorker.run (SuiteRunnerWorker.java:86) bei org.testng.TestNG.runSuitesSequentially (TestNG.java:1301) bei org.testng.TestNG.runSuitesLocally (TestNG.java:1226) bei org.testng.TestNG.runSuites (TestNG.java:1144) bei org.testng.TestNG.run (TestNG.java:1115) bei org. testng.remote.AbstractRemoteTestNG.run (AbstractRemoteTestNG.java:114) bei org.testng.remote.RemoteTestNG.initAndRun (RemoteTestNG.java:251) bei org.testng.remote.RemoteTestNG.main (RemoteTestNG.java:77)

============================================== = Standard Test Tests laufen: 1, Fehler: 0, Springt: 1

Konfiguration Fehler: 1, Springt: 1

================== ============================= Standard Suite Gesamt Tests ausführen: 1, Fehler: 0, Springt: 1

Konfiguration Fehler: 1, Springt: 1

ich habe den folgenden Code:

package test.java; 

import org.testng.annotations.AfterTest; 
import org.testng.annotations.BeforeTest; 
import org.testng.annotations.Test; 

import junit.framework.Assert; 

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 


public class NewTest { 

private WebDriver driver; 

@Test 

public void f() { 
    // TODO Auto-generated method stub 
    String exePath = "/Users/********/Downloads/chromedriver"; 
    System.setProperty("webdriver.chrome.driver", exePath); 

    //WebDriver driver = new ChromeDriver(); 

    driver.get("https://www.apple.com/"); 
    String title = driver.getTitle();     
    Assert.assertTrue(title.contains("Apple"));   
} 

@BeforeTest 
public void beforeTest() { 
    driver = new ChromeDriver(); 
}  
@AfterTest 
public void afterTest() { 
    driver.quit();   
}  

} 

Und pom.xml folgende:

project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>TestMaven</groupId> 
<artifactId>TestMaven</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<build> 
<sourceDirectory>src</sourceDirectory> 
<plugins> 
    <plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.5.1</version> 
    <configuration> 
     <source>1.8</source> 
     <target>1.8</target> 
    </configuration> 
    </plugin> 
</plugins> 
</build> 
<dependencies> 
<dependency> 
    <groupId>org.seleniumhq.selenium</groupId> 
    <artifactId>selenium-java</artifactId> 
    <version>3.6.0</version> 
</dependency> 
<dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
</dependency> 
<dependency> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    <version>6.11</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.poi</groupId> 
    <artifactId>poi</artifactId> 
    <version>3.17</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <version>2.20.1</version> 
</dependency> 
</dependencies> 
</project> 

Antwort

0

Sie benötigen Eigenschaft in @beforeTest Methode bec einzustellen. Es wird vor @Test ausgeführt.

In Ihrem Fall versuchen Sie, eine Treiberinstanz zu erstellen, bevor Sie die Eigenschaft festlegen.

Try Code unten: -

@BeforeTest 
    public void beforeTest() { 
     String exePath = "/Users/********/Downloads/chromedriver/chromedriver.exe"; 
     System.setProperty("webdriver.chrome.driver", exePath); 
     driver = new ChromeDriver(); 
    } 

package test.java; 

import org.testng.annotations.AfterTest; 
import org.testng.annotations.BeforeTest; 
import org.testng.annotations.Test; 

import junit.framework.Assert; 

import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 


public class NewTest { 

private WebDriver driver; 

@Test 

public void f() { 

    driver.get("https://www.apple.com/"); 
    String title = driver.getTitle();     
    Assert.assertTrue(title.contains("Apple"));   
} 

@BeforeTest 
public void beforeTest() { 
String exePath = "/Users/********/Downloads/chromedriver/chromedriver.exe"; 
    System.setProperty("webdriver.chrome.driver", exePath); 

    driver = new ChromeDriver(); 
}  
@AfterTest 
public void afterTest() { 
    driver.quit();   
}  

} 
+0

Ich versuche es, bekam aber den gleichen Fehler: failed CONFIGURATION: @BeforeTest beforeTest java.lang.IllegalStateException: Der Pfad zum Treiber ausführbar muss durch die Systemeigenschaft webdriver.chrome.driver festgelegt werden; – EnislavMollov

+0

String exePath = "/ Benutzer/********/Downloads/chromedriver" Ur Pfad sollte bis chromedriver.exe sein .. refer syntax String exePath = "/ Benutzer/********/Downloads/chromedriver/chromedriver.exe "; –

+0

chromedriver ist keine * .exe-Datei. Es heißt "Unix ausführbar" – EnislavMollov

Verwandte Themen