2017-02-18 21 views
1

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

Actions myActions = new Actions(myWebDriver); 

, потому что класс org.openqa.selenium.interactions.Actions отсутствует в селеном Апи-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. Класс действия отсутствует в загруженном артефакте selenium-api.

Поиск в классе в репозитории Maven с помощью grepcode.com находит только версию 2.47.1 и старше.

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

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

ответ

1

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

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

+0

Вы правы! - изменение зависимостей с одной зависимостью «selenium-java» фиксировало проблему. Первое предложение не помогает: как показано в моем первом извлечении pom.xml, зависимость «selenium-remote-driver» уже присутствовала, но с версией = 2.31.0 - довольно странно, в репозитории maven это наиболее доступна последняя версия (но, даже незнакомец, зависимость selenium-java теперь загружает также версию 3.0.1 «selenium-remote-driver», по-видимому, из ниоткуда!) –

+0

И, конечно же, восторженное спасибо за помощь ! –