【问题标题】:Selenium WebDriver 3.0.1 Actions class missing from selenium-api-3.0.1.jar from Maven repositoryMaven 存储库中的 selenium-api-3.0.1.jar 中缺少 Selenium WebDriver 3.0.1 Actions 类
【发布时间】:2017-07-07 18:01:27
【问题描述】:

我在一个基于 Maven 的项目中使用 Selenium WebDriver 3.0.1。此代码 sn-p 失败(无法编译):

Actions myActions = new Actions(myWebDriver);

因为从 maven 下载的 selenium-api-3.0.1.jar 中缺少 org.openqa.selenium.interactions.Actions 类。 这是 pom.xml 的相关部分:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>3.0.1</version>
</dependency>
<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-support</artifactId>
  <version>3.0.1</version>
  <type>jar</type>
</dependency>
<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-api</artifactId>
  <version>3.0.1</version>
</dependency>
<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-htmlunit-driver</artifactId>
  <version>2.52.0</version>
</dependency>
<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-remote-driver</artifactId>
  <version>2.31.0</version>
</dependency>

我还在 pom.xml 中测试了这个替代依赖:

<dependency>
  <groupId>org.seleniumhq.selenium</groupId>
  <artifactId>selenium-server</artifactId>
  <version>3.0.1</version>
</dependency>

但在这两种情况下,下载的 selenium-api 工件中都缺少 org.openqa.selenium.interactions.Actions 类。

使用 grepcode.com 在 Maven 存储库中搜索类只能找到 2.47.1 或更低版本。

我直接从http://www.seleniumhq.org/download/ url 下载了 Selenium Client & WebDriver Language Bindings zip 包,其中包含的 client-combined-3.0.1-nodeps.jar 文件确实包含 org.openqa.selenium.interactions.Actions 类。

似乎我遗漏了一些东西......但我真的不知道如何修复 Maven 依赖项。任何帮助都会被热情地接受!

【问题讨论】:

    标签: java maven selenium webdriver classnotfound


    【解决方案1】:

    似乎 org.openqa.selenium.interactions 包(包括 Actions 类)已移至 selenium-remote-driver。

    您可以直接向selenium-remote-driver 添加依赖项,或者更简单地向selenium-java 添加依赖项(这取决于selenium-chrome-driver,而selenium-remote-driver 又取决于selenium-remote-driver)。我会尝试使用后一个选项,因为这也可以让您摆脱许多其他显式依赖项。

    【讨论】:

    • 你是对的! - 将依赖项更改为单个 selenium-java 依赖项解决了问题。第一个建议没有帮助:如我的第一个 pom.xml 提取所示,selenium-remote-driver 依赖项已经存在,但版本 = 2.31.0 - 很奇怪,在 maven 存储库中,这是可用的最新版本(但是,更奇怪的是,selenium-java 依赖项现在还下载了 selenium-remote-driver 的 3.0.1 版本,显然是从哪里来的!)
    • 当然,非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    • 2017-03-10
    • 2017-05-23
    • 2017-02-28
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    相关资源
    最近更新 更多