将浏览器驱动程序添加为 Maven 依赖项的原因是啥?

Posted

技术标签:

【中文标题】将浏览器驱动程序添加为 Maven 依赖项的原因是啥?【英文标题】:What is the reason to add a browser driver as a maven dependency?将浏览器驱动程序添加为 Maven 依赖项的原因是什么? 【发布时间】:2019-09-11 22:53:39 【问题描述】:

为什么要包含

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
     <artifactId>selenium-chrome-driver</artifactId>
     <version>3.9.1</version>
</dependency>

如果我们还需要下载驱动程序的二进制文件,到 maven 项目? 有什么好处? 如果我们更改依赖版本,但不下载新的二进制文件会发生什么?

【问题讨论】:

【参考方案1】:

Selenium Maven Artifacts 可以在Central Maven Repository 中找到。现在要开始在您的 Maven 项目中使用任何实现,您只需在 pom.xml 中添加所需的依赖项(当前版本为 Selenium v3.141.59):

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>

下图显示了不同 Selenium Maven 工件 之间的依赖关系,以及这些工件中最重要的/接口

如果您知道您只会使用某个 WebDriver 实现,例如FirefoxDriver,你不需要依赖 selenium-java 工件(它有很多传递依赖)。相反,您可以在所需的工件上添加 selenium-chrome-driver 依赖项。

【讨论】:

是不是表示如果使用selenium-java依赖,就不需要在pom中添加任何selenium-&lt;browser&gt;-driver @Vladimir 是的,你是对的。您应该仅根据您的要求使用相关依赖项。

以上是关于将浏览器驱动程序添加为 Maven 依赖项的原因是啥?的主要内容,如果未能解决你的问题,请参考以下文章

具有 maven 依赖项的 Java ClassNotFoundException

在 OSGi 包中添加第三方 Maven 依赖项的最佳方法

我可以使用已添加为 JAR 依赖项的应用程序中的控制器吗?

Gradle 发布到 Maven 添加了一个似乎不适用于 Maven POM 依赖项的后缀

Maven - 相同依赖项的多个版本

具有依赖项的 Maven 2 程序集:不包括范围“系统”下的 jar