我的代码非常简单 代码:
WebDriver wd =new ChromeDriver();
System.setProperty("webdriver.chrome.driver",
"D:\\List_of_Jar\\chromedriver.exe");
String baseUrl = "https://www.google.com";wd.get(baseUrl);
从selenium hq网站下载并添加了jar作为“Java-3.4.0”。 从同一网站下载Google Chrome Driver-2.29,并将其放在“D:\ List_of_Jar”路径中。
当我运行上面的代码时,我得到一个错误 “java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver。可以从http://chromedriver.storage.googleapis.com/index.html下载最新版本 在com.google.common.base.Preconditions.checkState(Preconditions.java:738)“。
虽然进行了正确配置,但仍出现版本错误。所以请帮助我解决这个问题。 细节: 操作系统:Windows XP。 Java:JDK1.8和JRE1.8。 Selenium:版本3.4
答案 0 :(得分:19)
应在浏览器启动之前设置驱动程序路径,如下所示。
System.setProperty("webdriver.chrome.driver","D:\List_of_Jar\chromedriver.exe");
WebDriver wd =new ChromeDriver();
String baseUrl = "https://www.google.com";
wd.get(baseUrl);"
答案 1 :(得分:7)
您正在错误地设置Chrome驱动程序路径。必须在WebDriver初始化之前设置属性。
像这样设置属性 -
System.setProperty("webdriver.chrome.driver","D:\\List_of_Jar\\chromedriver.exe")
WebDriver wd =new ChromeDriver();
String baseUrl = "https://www.google.com";
wd.get(baseUrl);"
答案 2 :(得分:5)
如果您使用的是IntelliJ IDE,那么在IntelliJ上没有设置'运行>编辑配置> VM选项'我只会遇到这个错误:
Failed scenarios:
C:/Users/DATestAdmin/IdeaProjects/TestLogin/src/test/resources/login.feature:4 # Scenario: Successfully logging in
1 Scenarios (1 failed)
3 Steps (3 skipped)
0m0.194s
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property;
所以,一旦我在' Run>中添加了我的chromedriver的路径。编辑配置> VM选项':
-Dwebdriver.chrome.driver="C:\\Users\\This\\Is\\Where\\ChromeDriverIs\\chromedriver_win32.exe"
我现在能够成功启动Chrome浏览器。
答案 3 :(得分:1)
我完全同意Murthi的观点,但更好的方法是设置相对于驾驶员的路径,而不是绝对路径。
相对路径如下:
System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver.exe");
Abosulte:是PC中驱动程序的路径。
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
为什么? 将驱动程序包含在项目中,而不仅仅是在计算机中,是一种好习惯。只需找到或创建文件夹f.e.资源,在资源内部创建名为f.e的文件夹。驱动程序并在那里导入驱动程序/驱动程序exe文件。
答案 4 :(得分:0)
尝试:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Demo2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver", "I:\\Bhasker-ShiroCode\\work\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://google.com");
}
}
为避免错误:
答案 5 :(得分:0)
由于没有在我的计算机上安装chrome驱动程序,因此出现了相同的错误。 安装chrome驱动程序。跟随: https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver
答案 6 :(得分:0)
您应该按照Selenium Wiki的指示使用Chocolatey。它将立即工作。
Windows users with Chocolatey installed: choco install chromedriver
答案 7 :(得分:0)
我也遇到了同样的问题。修复后,使我的应用程序运行平稳。
首先,可以从下面的链接中找到所需版本的chrome驱动程序。
http://chromedriver.storage.googleapis.com/index.html
最好始终使用最新版本。下载后,在System.setProperty("webdriver.chrome.driver","{Your path Chrome Driver}");
遵循代码片段。
System.out.println("Creating Chrome Driver");
// Set Chrome Driver
System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("{Your URL}");
System.out.println("Wait a bit for the page to render");
TimeUnit.SECONDS.sleep(5);
System.out.println("Taking Screenshot");
File outputFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
String imageDetails = "D:\\Images";
File screenShot = new File(imageDetails).getAbsoluteFile();
FileUtils.copyFile(outputFile, screenShot);
System.out.println("Screenshot saved: {}" + imageDetails);
答案 8 :(得分:0)
以下几行正常工作
public class TestNGFile {
public String baseUrl = "https://google.com";
String driverPath = "C:\\\\Users\\\\Documents\\\\selenium\\\\chromedriver_win32\\\\chromedriver.exe";
@Test
public void verifyHomepageTitle() {
System.out.println("launching chrome browser");
System.setProperty("webdriver.chrome.driver", "C:\\Users\\Documents\\selenium\\chromedriver_win32\\chromedriver.exe");
//System.setProperty("webdriver.gecko.driver", driverPath);
WebDriver driver = new ChromeDriver();
driver.get(baseUrl);
String expectedTitle = "Google";
String actualTitle = driver.getTitle();
Assert.assertEquals(actualTitle, expectedTitle);
driver.close();
答案 9 :(得分:0)
我遇到了同样的问题。 “驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置。” 下载了驱动程序并设置了系统属性。