我正在尝试创建一个jar,使人们可以通过此库启动Web浏览器驱动程序。 因此,想法是让一个项目“ ToBecomeJar”将chromedriver(没有文件扩展名)作为“ drivers”文件夹中的一项,并在其代码中将其使用为:
private WebDriver getDriver(){
System.setProperty(CHROME_DRIVER_PROPERTY, "drivers/chromedriver");
driver =new ChromeDriver();
return driver;
}
这里的问题是,当我将该项目转换为库时,使用时当然会将“ PathToDriver”作为绝对路径,导致我的新项目需要与驱动程序库完全相同的路径结构那里。
有什么办法使这个相对?
我曾尝试使用资源文件夹并使用.getResource调用资源,但我确实无法使其正常工作。调查这些人时,应提到它应该变成.getResourceStream,因为它变成了文件以外的其他名称,但这对我不起作用,因为它不是我要使用的文本文件。
答案 0 :(得分:1)
尝试使用'user.dir',它是JVM的环境变量。 它可以用来构造驱动程序可执行文件的路径字符串:
private WebDriver getDriver(){
System.setProperty(CHROME_DRIVER_PROPERTY, System.getProperty("user.dir") + "/drivers/chromedriver");
driver = new ChromeDriver();
return driver;
}
答案 1 :(得分:0)
您可以在启动应用程序时将jar中所需的资源提取到一个临时文件夹,然后指向该文件夹以获取适当的驱动程序。