Действия Selenium не работают с версией 3.141.59

#java #selenium #try-catch #action #pom.xml

#java #selenium #попробуйте-поймайте #Экшен #pom.xml

Вопрос:

Основная проблема заключается в том, что мы пытаемся обновить наш POM , чтобы использовать версию 3.141.59 Selenium . Во время нашего обновления мы заметили, что у нас есть несколько ошибок с Actions . После прочтения документации мы обнаружили, что:

«импортируйте org.openqa.selenium.interactions.Действия;» устарел и заменен на «импорт org.openqa.selenium.interactions.Действие».

Мы хотим сохранить то же поведение и обновить наш код для работы с новым импортом. Мы не видели никакой новой документации о том, как на самом деле это использовать. Ниже приведен пример того, как мы использовали старые действия.

 try {
       Actions actions = new Actions(driver);
       actions.moveToElement(searchDocument);
       actions.sendKeys(PDF);
       Thread.sleep(1000);
       actions.build().perform();
    }  catch(Exception e) {
}
  

Я смог найти эту заметку в журналах изменений на Selenium:

Исходный API Actions устарел в пользу подхода W3C.

Комментарии:

1. package org.openqa.selenium.interactions; /** * Interface representing a single user-interaction action. * */ public interface Action { void perform(); } это все, что я вижу в интерфейсе действий.

2. Я видел документацию о том, о чем вы говорите. Проблема, с которой я столкнулся, заключается в реализации новых взаимодействий.

Ответ №1:

Вот простой пример, если это полезно.

 Actions actions = new Actions(driver);

// create the mouserover action
Action mouseOverOnElement = actions.moveToElement(linkMenu).build();

// get the back ground color before mouse over             
String bgColor = linkMenu.getCssValue("background-color");
System.out.println("Before hover: "   bgColor);

// perform the mouseover operation        
mouseOverOnElement.perform();    

// get the back ground color after mouse over       
bgColor = linkMenu.getCssValue("background-color");
System.out.println("After hover: "   bgColor);
  

Документ Selenium:https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/interactions/Action.html

Комментарии:

1. Actions actions = new Actions(driver); не работает, выдает ошибку.

2. Я могу использовать это без проблем с последней версией selenium 3.141.59. Вот моя зависимость от maven <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>3.141.59</version> </dependency>

3. Да, это говорит мне, что мне нужно изменить Actions на Action , и я вызываю зависимость selenium так же, как и вы. Я не понимаю, почему это будет работать у вас.

4. Я смог найти это в журналах изменений «Исходный API Actions устарел в пользу подхода W3C», знаете ли вы, как это вообще использовать?

5. Я смог это сделать, и мы обнаружили, что это была версия Appium. Если вы обновите Selenium до самой новой, вам понадобится Appium 7.0.0, который мы используем. Спасибо за вашу помощь.

Ответ №2:

Как предложил @Tyler в комментарии, у меня это работает: я смог это сделать, и мы обнаружили, что это была версия Appium. Если вы обновите Selenium до самой новой, вам понадобится Appium 7.0.0, который мы используем.

Обновите версию Appium также 7.0.