使用相对路径存储在jar中的资产文件中的ChromeDriver.exe



我使用的是Java 1.8和Selenium 2.53.0。我已经接受了这些,并使用maven创建了一个lib/jar来处理驱动程序实例化。在该库中,我还将ChromeDriver.exe打包到assets文件夹中。

在我的另一个项目中,我将该lib作为依赖项调用,并在lib中使用AutomationDriver对象。在库中,它会自动实例化我使用已经指定的设置调用的任何驱动程序。然而,这是ChromeDriver.exe的特殊情况,因为它需要

System.setProperty("webdriver.chrome.driver", "./path/to/chromedriver");

设置为引用路径。我以前在我的项目中使用相对路径,它运行得很好,但现在我把它作为一个库,我似乎无法找出到达库中资产的相对路径,这样它就可以在每台机器上运行,而不必下载/路由到另一个ChromeDriver。

  • 如何处理lib/jar中资产的相对路径
  • 如何设置系统属性以使用该资产
  • 有没有一种方法可以让它自动查询自己的路径并使用它

您可以使用库WebDriverManager,而不是手动处理chromedriver二进制文件。如果您正在使用Maven,您可以将其添加为依赖项,如下所示:

<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.1</version>
</dependency>

然后简单地调用代码中的这一行:

WebDriverManager.chromedriver().setup();

库会自动为您下载合适的chromedriver二进制文件,设置为在Selenium WebDriver代码中使用。

最新更新