Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Не находит элемент на станице при помощи Action

thucydides
webdriver
java
Теги: #<Tag:0x00007f7b62d2d8b0> #<Tag:0x00007f7b62d2d770> #<Tag:0x00007f7b62d2d630>

(s.alex) #1

Добрый день товарищи! Есть вопрос насчет нахождения элемента при движении мыши. Пример такой

Есть блок с пользователем, если навести на него, то появляется “плюс” для добавления этого пользователя в группу конференции см. скрин

Блок

При наведении на юзера

Значит воспользовался Action

public void setChoosePeopleConference() throws InterruptedException{

    Actions action = new Actions(getDriver());
    action.moveToElement(AddUser);
    Thread.sleep(2000);
    action.moveToElement(AddUserAdd);
    action.click();
    action.perform();

    clickOn(ApplyPeopleConference);
}

Локатор AddUser - наведение на блок
Локатор AddUserAdd - наведение на блок и клик на “+”

Вот … суть проблемы ,при запуске теста, на первый элемент не находит, следовательно на “+” не кликает. Подскажите в чем может быть проблема


(5am) #2

как вариант - грязный хак: принудительное отображение кнопки “+” с помощью JS’а
а по теме: данные вопросы проще решаются, если поделиться HTML кодом / линкой на страницу (если она есть в паблике)


(s.alex) #3


(5am) #4

честно говоря, одного кода мало… хорошо бы паблик пример
попробуйте делать action.moveToElement(AddUser); на топовый div с юзером, т.е. на самый верхний div прямоугольной карточки юзера.

  • еще один из вариантов - навестить на элемент с помощью JS (document.getElementById(“elementID”).scrollIntoView():wink:

(s.alex) #5

Решил проблему, оказалось что этот метод Action отрабатывает, но… следует правильно выбрать локатор, насколько я пробовал через firepath (firebug), не получилось, но благодаря [Test Recorder]
[1] [1]: https://chrome.google.com/webstore/detail/test-recorder-css-selecto/cajiblmjgnmllbkmlgcnkhafngdjfoci
получилось найти локатор cssSelector