- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在编写一个 Web 自动化程序,到目前为止,它使用 Selenium 的 FirefoxDriver 运行良好。但是,如果未安装 Firefox,我想让它使用 Chrome。我下载了 ChromeDriver,将它放在我的 Eclipse 项目的一个文件夹中,然后运行它。在我添加 System.setProperty("webdriver.chrome.driver", "Drivers/chromedriver.exe");
之后它工作正常。但是,当我尝试导出它时(使用 Eclipse 的标准导出)。它崩溃了,我相信是因为它找不到 ChromeDriver(我认为这是因为用 FirefoxDriver 导出它工作正常)。
我曾尝试将 .JAR 文件更改为 .ZIP 文件以查看内部情况,我发现 driver
文件夹已被删除,只需将 chromedriver.exe
在顶级 JAR 中。我尝试将属性更改为 System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
但仍然崩溃。
有谁知道为什么导出的 JAR 找不到 chromeDriver
,尽管我已经验证它在 JAR 中?
谢谢,丹尼尔
最佳答案
你必须在运行它之前解压它。将您的驱动程序复制到 src/resources/drivers/chromedriver.exe 下
现在,无论何时运行此代码,它都会在您放置 Runnable jar 的位置创建一个新文件夹“Driver”并复制您可以访问的驱动程序。
ClassLoader classLoader = getClass().getClassLoader();
URL resource = classLoader.getResource("resources/drivers/chromedriver.exe");
File f = new File("Driver");
if (!f.exists()) {
f.mkdirs();
}
File chromeDriver = new File("Driver" + File.separator + "chromedriver.exe");
if (!chromeDriver.exists()) {
chromeDriver.createNewFile();
org.apache.commons.io.FileUtils.copyURLToFile(resource, chromeDriver);
}
System.setProperty("webdriver.chrome.driver", chromeDriver.getAbsolutePath());
driver = new ChromeDriver();
关于java - 如何在 JAR 中包含 ChromeDriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21650178/
我是一名优秀的程序员,十分优秀!