【发布时间】:2014-07-20 13:58:58
【问题描述】:
我正在尝试为 selenium 测试创建一个可执行 jar。代码需要做的部分事情是设置一个系统属性来告诉 Selenium 在哪里可以找到驱动程序可执行文件(我正在使用 chromedriver)。文件结构如下:
src
com
mycompany
SeleniumTest.java
chromeDriver
windows
chromedriver.exe
代码如下:
private static String WINDOWS_DRIVER = "/chromeDriver/windows/chromedriver.exe";
System.setProperty("webdriver.chrome.driver",
SeleniumTest.class.getResource(WINDOWS_DRIVER).getFile());
在 Eclipse 中执行时,此代码运行良好。但是,当我导出到可运行的 jar 文件(来自 eclipse)时,出现以下错误:
Exception in thread "main" java.lang.IllegalStateException: The driver executable
does not exist: F:\temp\file:\F:\temp\seleniumTest.jar!\chromeDriver\windows\chromedriver.exe
at com.google.common.base.Preconditions.checkState(Preconditions.java:177)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:117)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:112)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:75)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:139)
然而 seleniumTest.jar 存在于 F:\temp 中,错误消息指定的 jar 中的路径也是如此。
关于什么是错误的任何想法或尝试的建议?我尝试将斜杠更改为反斜杠,并且(仅作为测试)对路径进行硬编码(例如将系统属性设置为 F:\temp\seleniumTest.jar!\chromeDriver\windows\chromedriver.exe),但都没有奏效。
【问题讨论】:
标签: java selenium jar resources packaging