TestNG Selenium Java - java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置

时间:2017-03-25 07:33:56

标签: java selenium

如果我不使用TestNG而只使用普通的Java Selenium,那一切都很好。 但是,如果我将TestNG与Java Selenium一起使用,我会收到此错误。

java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html

我已经将驱动程序的路径设置为可执行,编译器仍然抱怨。有什么建议吗?谢谢。

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

这是我的属性文件

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

3 个答案:

答案 0 :(得分:2)

我发现了这个问题。 只是一个小小的错误。

应为小写webdriver.chrome.driver

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

而不是

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

小心或大写需要小心。感谢。

答案 1 :(得分:1)

尽量不要对路径进行硬编码。

您可以直接使用 System.getProperty(“user.dir”)转到您的工作目录。

是的,小写使用 webdriver.chrome.driver

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

答案 2 :(得分:1)

如果从命令行运行testng脚本,则可能需要添加以下开关 -

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