Перейти к содержимому

Фотография

Не взаимодействует со вторым элементом из списка с одинаковыми class


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 Yoooo

Yoooo

    Новый участник

  • Members
  • Pip
  • 13 сообщений

Отправлено 30 июня 2019 - 20:03

На странице http://todomvc.com/e...les/backbone/#/ пытаюсь написать сценарий который удаляет второй из двух введённых в список элементов.

Я использую связку Selenium+Java.

 

При использовании  driver.findElementByClassName("destroy").click();  - клик срабатывает, но удаляется первый пункт, а нужно удалить второй

При использовании  driver.findElementsByClassName("destroy").get(1).click();  - появляется ошибка element not interactable
При использовании  driver.findElementByXPath("//section/ul/li[2]/div/button").click();  - тоже появляется ошибка element not interactable
 
Фактически, кнопка для удаления появляется после того, как навести на неё курсор.
Но использование 
Actions cursorOnDestroyButton = new Actions(driver);
List <WebElement> destroyList = driver.findElements(By.className("destroy"));
cursorOnDestroyButton.moveToElement(destroyList.get(1)).click();
тоже не помогло.
В таком случае никаких ошибок не появляется, но и с элементами ничего не происходит, не удаляется вообще ни первый ни второй пункт.
 

Подскажите, в чём здесь ошибка и как такое реализовать?

 


  • 0

#2 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 01 июля 2019 - 07:54

Попробуйте между "cursorOnDestroyButton.moveToElement(destroyList.get(1))" и ".click();" добавить ожидание кликабельности.

Т.е. "переместить курсор", подождать пока кнопка станет кликабельной, кликнуть.


  • 0

#3 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 833 сообщений


Отправлено 01 июля 2019 - 08:14

Возможно, крестик не сразу появляется при наведении на вторую плашку.

По этому, сначала наведите на плашку (css: .todo-list li:nth-child(2) )

Подождите немного (или более правильно - подождите появления крестика - css: .todo-list li:nth-child(2) .destroy)

И кликните уже по нему.


  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных