-1

什么时候可以使用这个(selenium-chrome-driver)依赖?

<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-chrome-driver</artifactId>
    <version>3.14.0</version>
</dependency>

在我读过的许多答案中,它需要与 Chrome 二进制定义一起使用。通过仅使用 chrome 二进制文件,我们可以在 Chrome 浏览器上执行脚本。因此,驱动程序调用受二进制定义的约束。

问题:那么这个依赖有什么用,没有chrome二进制文件?

我参考了下面的答案并尝试过,没有使用二进制声明。其中说要使用 WebDriverManager 依赖项:

如何在 Maven 中使用 chrome 驱动程序

selenium 2 铬驱动程序

https://stackoverflow.com/a/39809773/9405154

https://github.com/bonigarcia/webdrivermanager


已解决,

错误:从 https://repo.maven.apache.org/maven2传输 org.apache.commons:commons-compress:jar:1.14 失败被缓存在本地存储库中,直到中央的更新间隔才会重新尝试解析已过期或强制更新。原始错误:无法将工件 org.apache.commons:commons-compress:jar:1.14 从/到中央传输(https://repo.maven.apache.org/maven2):操作被取消。

4

2 回答 2

1

Selenium 是一个多模块项目。其中一个模块是 selenium-chrome-driver。它包含与使用 selenium 运行 chrome 相关的逻辑。您可以将此依赖项添加到您的项目中,并以某种方式修改/扩展其原始行为。但是,如果没有二进制文件,它就不会运行实际的 chrome 浏览器——这就是它的工作原理。然后你必须自己构建可执行文件。您可以在此处查看项目如何使用此依赖项

长话短说,如果您不想费心管理二进制文件,请使用WebDriverManager,因为它就像一个魅力。

根据您问题中的错误文本,您可以尝试以下解决方案:

删除所有失败的下载:

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;

对于窗户:

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i

然后在 Eclipse 中右键单击您的项目并选择 Maven->“更新项目...”,确保在结果对话框中选中“更新依赖项”,然后单击“确定”。

从这里复制:链接

于 2018-11-02T08:18:49.203 回答
0

I assume your automation project is a maven-project. So when you build your project, the dependencies in pom will be downloaded locally to execute. But a binary file needs to be set using SystemProperty and passing the parameter as the path to that webdriver, which will allow the webdriver instance to communicate with the browser instance on that machine. So, we do not need this dependency in all. Same goes for other browser too I guess.

Also if you are doing CI using jenkins, you should prefer using docker. That way you don't have to manage the binary instances, the docker will handle that for you.

于 2018-11-02T08:03:14.463 回答