Selenium WebDriver 3.0.1 Класс действий отсутствует в selenium-api-3.0.1.jar из репозитория Maven

Я использую Selenium WebDriver 3.0.1 в проекте на основе Maven. Этот фрагмент кода не работает (не компилируется):

Actions myActions = new Actions(myWebDriver);

потому что класс org.openqa.selenium.interactions.Actions отсутствует в selenium-api-3.0.1.jar, загруженном из maven. Это соответствующая часть 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>

но в обоих случаях класс org.openqa.selenium.interactions.Actions отсутствует в загруженном артефакте selenium-api.

Поиск класса в репозитории Maven с помощью grepcode.com обнаруживает только версию 2.47.1 или более раннюю.

Я загрузил zip-пакет Selenium Client & WebDriver Language Bindings прямо из http://www.seleniumhq.org/download/ url и включенный файл client -comdated-3.0.1-nodeps.jar действительно содержат класс org.openqa.selenium.interactions.Actions.

Кажется, мне чего-то не хватает ... но я действительно понятия не имею, как исправить зависимость Maven. Любая помощь будет принята с энтузиазмом!


person Luca Buraggi    schedule 18.02.2017    source источник


Ответы (1)


Похоже, пакет org.openqa.selenium.interactions, включая класс Actions, был перемещен в selenium-remote-driver.

Вы можете либо добавить зависимость к selenium-remote-driver напрямую, либо, что еще проще, добавить зависимость к selenium-java (это зависит от selenium-chrome-driver, который, в свою очередь, зависит от selenium-remote-driver). Я бы попытался выбрать последний вариант, так как он также должен позволить вам избавиться от множества других явных зависимостей.

person ralph.mayr    schedule 18.02.2017
comment
Ты прав! - изменение зависимостей на единственную selenium-java зависимость устранило проблему. Первое предложение не помогает: как показано в моем первом извлечении pom.xml, зависимость selenium-remote-driver уже присутствовала, но с версией = 2.31.0 - как ни странно, в репозитории maven это самая последняя доступная версия (но, Еще более странно то, что зависимость selenium-java теперь загружает также версию 3.0.1 selenium-remote-driver, по-видимому, из ниоткуда!) - person Luca Buraggi; 18.02.2017
comment
И, конечно же, восторженное спасибо за помощь! - person Luca Buraggi; 18.02.2017