我正在编写一个网络自动化程序,到目前为止,它使用 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();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)