Selenium 获得;驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性“设置”;尽管设置了正确的路径
我的代码非常简单 代码: 已从selenium hq站点下载并添加jar作为“Java-3.4.0”。 从同一个网站下载Google Chrome驱动程序-2.29,并将其定位在“D:\List\u of\u Jar”路径中 当我运行上面的代码时,我得到一个错误Selenium 获得;驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性“设置”;尽管设置了正确的路径,selenium,selenium-webdriver,selenium-chromedriver,Selenium,Selenium Webdriver,Selenium Chromedriver,我的代码非常简单 代码: 已从selenium hq站点下载并添加jar作为“Java-3.4.0”。 从同一个网站下载Google Chrome驱动程序-2.29,并将其定位在“D:\List\u of\u Jar”路径中 当我运行上面的代码时,我得到一个错误 java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system p
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
at com.google.common.base.Preconditions.checkState(Preconditions.java:738)
获取版本错误,但配置不正确。所以请帮我解决这个问题
详情:
- 操作系统:WindowsXP
- Java:JDK1.8和JRE1.8
- Selenium:3.4版
System.setProperty("webdriver.chrome.driver","D:\List_of_Jar\chromedriver.exe");
WebDriver wd =new ChromeDriver();
String baseUrl = "https://www.google.com";
wd.get(baseUrl);"
您未正确设置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);"
如果您使用的是IntelliJ IDE,那么在IntelliJ上,如果没有在“运行>编辑配置>虚拟机选项”中进行设置,我将遇到以下错误:
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;
因此,一旦我在“运行>编辑配置>虚拟机选项”中本地添加了chromedriver的路径:
-Dwebdriver.chrome.driver="C:\\Users\\This\\Is\\Where\\ChromeDriverIs\\chromedriver_win32.exe"
编辑配置“>
我现在可以成功启动Chrome浏览器了。试试:
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");
}
}
要避免错误,请执行以下操作:
- webdriver.chrome.driver(应使用小写字母)
- 必须提供正确的chromedriver.exe(正确路径)
- 导入类路径下的所有Selenium JAR
你应该按照Selenium wiki的要求使用巧克力。它会马上起作用
安装了Chocolate的Windows用户:choco安装chromedriver
我也遇到了同样的问题。以下修复使我的应用程序运行平稳 首先,可以从下面的链接中找到所需的chrome驱动程序版本 最好始终使用最新版本。下载后,在
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);
我完全同意Murthi的观点,但更好的方法是设置驱动程序的相对路径,而不是绝对路径 相对路径如下所示:
System.setProperty("webdriver.chrome.driver", "src/test/resources/drivers/chromedriver.exe");
A结果:是电脑中驱动程序的路径
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
为什么??
将驱动程序放在项目中是一种很好的做法,而不仅仅是放在计算机中。只需查找或创建文件夹f.e.resources,在资源中创建名为f.e.drivers的文件夹,然后将驱动程序/驱动程序exe文件导入其中。以下几行操作正常
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();
我也面临同样的问题。
“驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置。”
已下载驱动程序并已在系统属性中设置
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();