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

问题描述 投票:0回答:1

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

在我的另一个项目中,我将该lib称为依赖项,并且我从lib内部使用了AutomationDriver对象。在lib中,它将使用我已经指定的设置自动实例化我需要的任何驱动程序。但是,这是ChromeDriver.exe的特例,因为它需要具有

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

设置为引用路径。之前我在项目中使用相对路径,但它可以正常工作,但是现在我拥有它作为lib的权限,我似乎无法找出到达lib内资产的相对路径,以便它可以在每台机器上使用无需下载/路由到另一个ChromeDriver。

  • 如何处理lib / jar中资产的相对路径?
  • 如何设置系统属性以使用该资产?
  • 有没有一种方法可以自动查询并使用它自己的路径?
java maven selenium jar selenium-chromedriver
1个回答
2
投票

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

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

然后只需在您的代码中调用此行:

WebDriverManager.chromedriver().setup();

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

© www.soinside.com 2019 - 2024. All rights reserved.