我们可以在 selenium 中添加驱动程序作为 maven 依赖项吗

Posted

技术标签:

【中文标题】我们可以在 selenium 中添加驱动程序作为 maven 依赖项吗【英文标题】:Can we add drivers in selenium as maven depandancies 【发布时间】:2018-11-07 00:52:36 【问题描述】:

我们可以在 POM 中添加 gecko 驱动程序,即驱动程序或 chrome 驱动程序作为 depandancy 吗?我试图搜索但无法在https://mvnrepository.com/artifact 上对其进行罚款。有什么理由不将它们放在 Maven 存储库中?

【问题讨论】:

gecko 驱动程序或 chrome 驱动程序是可执行的二进制文件,Maven 是 Java .jar 文件和资源的存储库。但是,如果您仍然需要通过 Maven Repo 上传和使用非 java 二进制文件,您可以关注此帖子:rolfje.wordpress.com/2013/07/18/… 有一些 maven 插件可以自动下载二进制文件。例如。 github.com/webdriverextensions/webdriverextensions-maven-plugin 和 github.com/webdriverextensions/webdriverextensions-maven-plugin 可以使用cURL按版本下载驱动 【参考方案1】:

正如少数 cmets 所述,该驱动程序是可执行的二进制文件。 Maven 无法帮助您,因为它只是一个依赖存储库。目前要在 Firefox 上运行 selenium,我们需要编写:

System.setProperty("webdriver.gecko.driver", "driverpath/.exe");
WebDriver driver = new FirefoxDriver();

但是,我们有新的解决方案可以让我们摆脱第一行代码,并且您不再需要下载 dirver 二进制文件。它称为 WebDriverManager,它是一个可以使用 Maven pom 文件添加的依赖项。 这将在运行时使用最新版本号调用驱动程序。 你现在需要写的是:

WebDriverManager.firefoxdriver().setup();
WebDriver driver = new FirefoxDriver();

并且需要在pom文件中添加这个依赖

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

有关这方面的更多信息,请转到 Github 链接以检查驱动程序的所有其余部分,例如 chrome 、ie 等。WebDriverManagerLink

【讨论】:

【参考方案2】:

Check out this link for more clarification//在它会为 chrome 解决的行下面使用

    WebDriverManager.chromedriver().browserVersion("77.0.3865.40").setup();
WebDriver driver = new ChromeDriver();
        
        driver.get("URL");

//你还需要在POM文件中添加下面的依赖`

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

【讨论】:

以上是关于我们可以在 selenium 中添加驱动程序作为 maven 依赖项吗的主要内容,如果未能解决你的问题,请参考以下文章

如何使用C#selenium自动化Md2-datepicker?

为啥我们在 selenium webdriver 中需要番石榴?

MAC下使用selenium躲过亚马逊反爬虫机制

如何在 JMeter 的 Webdriver Sampler 中使用 Selenium

selenium1(转)

Selenium中WebDriver API的使用