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

Многочисленная проверка удаления сообщения в которого checkbox с уникальным id

pytest
python
selenium
webdriver
Теги: #<Tag:0x00007f7b6978d5e8> #<Tag:0x00007f7b6978d110> #<Tag:0x00007f7b6978cd78> #<Tag:0x00007f7b6978c918>

(Olexander Davis) #1

Привет
Как проверять такое действие, если xpath и css selector этого элемента в каждом сообщении разный
Спасибо заранее.
id – 100
Xpath – //*[@id=“100”]
CSS Selector – #\31 00


(Bolatbek) #2

Непонятно.
Вы хотите кликать на чекбокс - потом удалять это сообщение (кнопка с корзиной)?
Потом другой чекбокс?
id - вам известен?
Удаляете любые сообщения или ищете по тексту?
После удаления - страница обновляется?


(Olexander Davis) #3

Открываю страницу с этим списком, выбираю любой чек бокс от сообщения,
активирую чекбокс => нажимаю кнопку удалить (кнопка с корзиной)
Можно удалить любое сообщени из списка, главное что бы функцию удаления проверить.
Id известен, как я и писал:
id – 100
Xpath – //*[@id=“100”]
CSS Selector – #\31 00
Но после удаления уже будет чекбокс с другим id, xpath, css соотвественно
потому выходит что тест на один раз, каждый раз перед запуском нужно будет менять id что не правильно.

Да, страница обновляется


(Bolatbek) #4

Если вам нужно убедиться, что элемент “удалился”, то все делаете, как написали.
А потом проверяете, что данного элемента с этим id нет на странице.
Или что у вас еще уникальное есть? Может сам текст уникален?


#5

Находить его не по id, а по тому, что у него уникально


#6

по сабджекту получается


(Bolatbek) #7

А, понял в чем проблема, вы в тест забили уникальный id… и тест получился одноразовым.

В общем, можно сделать просто:

  • открываете страницу
  • считываете все элементы и запоминаете ids в массиве
  • кликаете на любой, удаляете
  • снова считываете все id-шники (или текст, в общем, что есть уникального у этих сообщений)

То есть в первую очередь:

  • считайте весь список, загоните в массив их id, можете и сам текст
  • потом рандомно (или первый к примеру) id как параметр в xpath
xpath = '//*[@id="' + id + '"]'
  • его и удаляете
  • после удаления ищете этот xpath, он должен отсутствовать

(Olexander Davis) #8

хороший вариант, спасибо), но не уверен что могу еще правильно организовать это в массиве,
хотя прийду домой, нужно попробывать, пока выписал просто все айди буду вбивать