Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Определить динамический селектор кнопки.

java
webdriver
selenium
Теги: #<Tag:0x00007fedc00ca5c0> #<Tag:0x00007fedc00ca340> #<Tag:0x00007fedc00ca048>

(Фрукт) #1

Здравствуйте. Я новичок и многого просто не понимаю, прошу помощи разобраться в том как получить селектор, если id элемента меняется при обновлении страницы
Я попыталась найти через cssSelector, className, linkText, xpath но не получилось, вылетает с ошибкой, что элемент не кликабельный.
Вот разметка в инспекторе объектов.

Заранее благодарю.


(Fiodar Motin) #2

//td[@class='customizedCommonLinkText customizedCommonLinkPosition '] ну или просто к тексту
//td[text()=‘Создать платеж или перевод’]


(Roy Obenon) #3

если текст локатора уникален, то лучше искать по
//td[contains(text(), 'Создать платеж или перевод')]
поскольку частенько перед началом и концом пробелы впихуют


(Lev Yarushin) #4

Для решения этой проблемы, в xpath есть функция normalize-space


(Yevgen Penziienko) #5

Еще бы увидеть пару-тройку строчек кода ниже того что на скриншоте. Но что-то мне подсказывает (и судя по описаной вами ошибке), что кликать надо не в ячейку таблицы. Эта яйчейка - просто графическое представление. А вот сам активный\кликабельный элементы - это ссылка в которую эта табличка обернута. Так что в нее скорей всего и надо кликать.


(Фрукт) #6

Спасибо всем огромное!
Я взяла второй способ и мне помогло:
//td[contains(text(), ‘Создать платеж или перевод’)]
В паре с командой:
Thread.sleep(500);
Использовала её так как кнопка не нажималась , вылетала ошибка , что какой-то <block…> мешает. Но сейчас все нажимается . Знаю , что эту команду не используют в серьёзных проектах , но через driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS) и подобные, элемент не кликался. Извините, что поздно ответила


(Anton ) #7

Thread.sleep(500) не рекомендуется использовать вообще нигде.
Рискну предположить что не кликалось как раз по причине, которую описал Yevgen Penziienko и кликать нужно не в ячейку таблицы а по ссылке, в которую она обернута