获取“驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置”虽然设置正确的路径
Posted
技术标签:
【中文标题】获取“驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置”虽然设置正确的路径【英文标题】:Getting "The path to the driver executable must be set by the webdriver.chrome.driver system property"though set correct path 【发布时间】:2017-11-12 14:01:48 【问题描述】:我的代码很简单 代码:
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: 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)
虽然配置正确,但出现版本错误。请帮我解决这个问题。
详情:
操作系统:Windows XP。 Java:JDK1.8 和 JRE1.8。 硒:3.4 版【问题讨论】:
【参考方案1】:应在浏览器启动之前设置驱动程序路径,如下所示。
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】:您设置的 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);"
【讨论】:
【参考方案3】:如果您使用的是 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;
因此,一旦我在“运行 > 编辑配置 > VM 选项”中本地添加了我的 chromedriver 的路径:
-Dwebdriver.chrome.driver="C:\\Users\\This\\Is\\Where\\ChromeDriverIs\\chromedriver_win32.exe"
我现在可以成功启动我的 Chrome 浏览器了。
【讨论】:
【参考方案4】:我完全同意 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 文件。
【讨论】:
【参考方案5】:以下几行可以正常工作
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();
【讨论】:
【参考方案6】:试试:
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(正确的路径) 在 Path 类下导入所有 Selenium jar【讨论】:
【参考方案7】:我遇到了同样的错误,因为我的机器上没有安装 chrome 驱动程序。 安装铬驱动程序。跟随: https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver
【讨论】:
【参考方案8】:您应该按照 Selenium wiki 的要求使用 Chocolatey。它会立即工作。
Windows users with Chocolatey installed: choco install chromedriver
https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver
【讨论】:
【参考方案9】:我也遇到了同样的问题。修复后,使我的应用程序运行顺利。
首先,可以从下面的链接中找到所需的 chrome 驱动程序版本。
http://chromedriver.storage.googleapis.com/index.html
最好始终使用最新版本。下载后在System.setProperty("webdriver.chrome.driver","Your path Chrome Driver");
中设置chrome驱动的路径
跟随代码片段。
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);
【讨论】:
【参考方案10】:我遇到了同样的问题。 “驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置。” 下载驱动并在系统属性中设置。
https://www.youtube.com/watch?v=Ny_8ikCbmcQ
【讨论】:
以上是关于获取“驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置”虽然设置正确的路径的主要内容,如果未能解决你的问题,请参考以下文章