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

Как правильно искать элемент таблицы на странице? ищу по XPATH

python
selenium
Теги: #<Tag:0x00007f7b656bce88> #<Tag:0x00007f7b656bcc58>

(Максим Рублёв) #1

Иногда после перезагрузки страницы меняется место элемента списка таблицы.Пробовал ещё искать по link_text но тогда код не отрабатывает.
PKArhiv="//*[@id=‘r-state-structure’]/div[2]/div[17]/div[2]/div[2]/div[3]/table/tbody/tr/td"
wait_xpath(driver, PKArhiv)
click_xpath(driver, PKArhiv)–мой пример как я ищу элемент и кликаю по нему.


(Evgenii) #2

//*[@id='r-state-structure']//td[contains(text(), 'Архивный отдел Приморского края')]


(Максим Рублёв) #3

Спасибо вам огромное вы очень мне помогли! По логике у вас проходит проверка, что в моей таблице"//[@id=“r-state-structure”]/div[2]/div[17]/div[2]/div[2]/div[12]/table/tbody/tr/td"
есть элемент с атрибутом text(), ‘Архивный отдел Приморского края’ при помощи функции contains().
Простите за наглость и если будет время и желание подскажите,как дальше провалится в этот элемент “услуга в этом ведомстве”?-
"//
[@id=‘content’]/div[2]/div[2]/div[2]/div[2]/div[1]/div/div/div/div[2]/div/div[1]/div[2]/a[1]"


(Crazyk2) #4

Покажите DOM дерево, как Вам наугад дать верный ответ?
Если предположить, что такой объект уникален на данной странице, то xpath будет вот таким.
//*[@id='content']//a[contains(text(), 'Услуга в этом ведомстве')]
или еще короче
//a[contains(text(), 'Услуга в этом ведомстве')]


(Максим Рублёв) #5

Здравствуйте,да такой XPATH уникален на страницу получается это и будет ответ. Благодарю вас благороднийший!)


(Максим Рублёв) #6

На самом деле я затупил немного и дал не тот XPATH услуги в ведомстве)
//[@id=“r-state-structure”]/div[2]/div[17]/div[2]/div[2]/div[13]/table/tbody/tr/td-ведомтсво
//
[@id=“r-state-structure”]//a[contains(text()),‘Услуга в ведомстве’]-услуга в ведомстве
Для моего случая ответ таков