gpt4 book ai didi

java - 如何在 JAR 中包含 ChromeDriver?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:55 36 4
gpt4 key购买 nike

我正在编写一个 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/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com