2017-03-25 3 views
0

Wenn ich nicht TestNG und nur Java Selen verwende, alles gut. Aber wenn ich TestNG mit Java Selenium verwende, erhalte ich diesen Fehler.TestNG Selenium Java - java.lang.IllegalStateException: Der Pfad zur ausführbaren Treiberdatei muss durch die Systemeigenschaft webdriver.chrome.driver festgelegt werden

Ich habe bereits den Pfad zum Treiber ausführbar und der Compiler klagt immer noch. Irgendein Vorschlag? Vielen Dank.

package testSuite; 
 

 
import java.io.FileInputStream; 
 
import java.io.FileNotFoundException; 
 
import java.io.FileOutputStream; 
 
import java.io.IOException; 
 
import java.sql.Driver; 
 
import java.util.Properties; 
 

 
import org.openqa.selenium.WebDriver; 
 
import org.openqa.selenium.chrome.ChromeDriver; 
 
//import org.junit.Test; 
 
import org.testng.annotations.AfterMethod; 
 
import org.testng.annotations.AfterTest; 
 
import org.testng.annotations.BeforeMethod; 
 
import org.testng.annotations.BeforeSuite; 
 
import org.testng.annotations.BeforeTest; 
 
import org.testng.annotations.Test; 
 

 
public class testNG 
 
{ 
 
\t 
 
\t @Test 
 
\t public void login() throws IOException { 
 
\t \t System.setProperty("WebDriver.Chrome.Driver", "C:\\Users\\Desktop\\chromedriver_win32\\chromedriver.exe"); 
 
\t \t WebDriver driver = null; 
 
\t \t Properties prop = new Properties(); 
 
\t \t FileInputStream file = new FileInputStream("C:\\Users\\workspace\\Selenium\\src\\testSuite\\config.properties"); 
 
\t \t prop.load(file); 
 
\t \t 
 
\t \t System.out.println(prop.getProperty("username")); 
 
\t \t 
 
\t \t if(prop.getProperty("browser").equals("chrome")) { 
 
\t \t \t System.out.println("OKOK"); 
 
\t \t \t driver = new ChromeDriver(); 
 
\t \t \t 
 
\t \t } 
 
\t \t driver.get(prop.getProperty("url")); 
 
\t \t 
 
\t } 
 
    }

Dies ist meine Properties-Datei

username = 56987 
password = 1234 
url = www.google.com 
browser = chrome 
+0

Ich kann jetzt nicht überprüfen, aber aus der Spitze von meinem Kopf das ist nicht, wie Sie eingestellt der Weg zum Fahrer. Keine Ahnung warum ohne TestNG das funktioniert. Sie müssen eine "ChromeOptions" -Instanz erstellen, den Pfad darauf festlegen und diese Instanz in die Treiberinstanz einfügen. Ich erinnere mich nicht daran, ob dies als Argument des Konstruktors oder durch einen Setter geschehen ist. – SantiBailors

Antwort

2

ich das Problem gefunden. Nur ein winziger kleiner Fehler.

Es sollte niedriger Fall sein webdriver.chrome.driver

System.setProperty("webdriver.chrome.driver", "C:\\Users\\Desktop\\chromedriver_win32\\chromedriver.exe"); 

statt

System.setProperty("WebDriver.Chrome.Driver", "C:\\Users\\Desktop\\chromedriver_win32\\chromedriver.exe"); 

Benötigen Sie mit der unteren oder oberen Fall vorsichtig sein. Vielen Dank.

+0

Außerdem sollte Ihre URL 'http: //' enthalten – kushal

1

Versuchen Sie nicht, den Pfad fest zu codieren. Sie können System.getProperty ("user.dir") direkt in Ihr Arbeitsverzeichnis eingeben.

Und ja verwenden Sie webdriver.chrome.driver in Kleinbuchstaben.

System.setProperty("webdriver.chrome.driver", 
       System.getProperty("user.dir")+ "/chromedriver.exe"); 
1

Wenn Sie das testng Skript von der Kommandozeile ausgeführt werden, müssen Sie möglicherweise hinzufügen die folgende Schalt-

-Dwebdriver.chrome.driver=<path to chromedriver.exe>\chromedriver.exe 
Verwandte Themen