代码之家  ›  专栏  ›  技术社区  ›  Ishita Shah Y_Sh

没有chrome二进制文件,selenium chrome驱动程序依赖关系有什么用?

  •  -1
  • Ishita Shah Y_Sh  · 技术社区  · 6 年前

    何时可以使用此(selenium-chrome驱动程序)依赖关系?

    <!-- 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依赖项:

    How to work with chrome driver in Maven

    selenium 2 chrome driver

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

    https://github.com/bonigarcia/webdrivermanager


    这个问题解决了,

    错误:传输失败 org.apache.commons网站:公地-压缩:jar:1.14从 https://repo.maven.apache.org/maven2 缓存在本地 在更新之前,不会重新尝试解析 中心间隔已过或强制更新。原始错误: 无法传输工件 org.apache.commons网站:公地-压缩:jar:1.14从/到中心 ( ):操作已取消。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Vladimir Efimov    6 年前

    Selenium是一个多模块项目。其中一个模块是selenium chrome驱动程序。它包含与使用selenium运行chrome相关的逻辑。您可以将此依赖项添加到项目中,并以某种方式修改/扩展其原始行为。如果没有二进制文件,它就不会运行真正的chrome浏览器——这就是它的工作原理。你将不得不建立自己的可执行文件,然后。您可以检查项目如何使用此依赖关系 here

    WebDriverManager 因为它就像一个符咒。

    删除所有失败的下载:

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

    对于windows:

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

    然后在eclipse中右键单击您的项目并选择Maven->“updateproject…”,确保在结果对话框中选中“updatedependencies”,然后单击OK。

    从这里复制: Link

        2
  •  0
  •   Sagar Jani    6 年前

    我假设你的自动化项目是maven项目。因此,当您构建项目时,pom中的依赖项将在本地下载以执行。但是需要使用SystemProperty设置一个二进制文件,并将参数作为该webdriver的路径传递,这将允许webdriver实例与该计算机上的浏览器实例通信。所以,我们根本不需要这种依赖。我想其他浏览器也一样。