Я не могу перебрать (найти) этот входной файл из селена python, каждый раз, когда изменяется идентификатор, и полный Xpath также не работает - PullRequest
0 голосов
/ 18 апреля 2020

Hy all, я не могу перебрать этот входной файл из селена python, каждый раз, когда id изменяется, и полный Xpath также не работает. URL: https://support.google.com/blogger/answer/3091837

я уже пробовал: -

driver.find_element_by_name("blog_URL").click()
driver.find_element_by_xpath('//*[@id="render_api158171433--blog_URL"]').click()
driver.find_element_by_xpath("/html/body/div[8]/div/section/div/div[1]/article/section/div/div[2]/div[1]/form/div[1]/input").click()
driver.find_element_by_id('render_api535892960--blog_URL')[2].click()

1 Ответ

0 голосов
/ 18 апреля 2020

Ваш <input> имеет скользкий идентификатор, но его имя кажется уникальным name="blog_URL", поэтому вы можете использовать find_element_by_name

В любом случае, когда идентификатор или класс каждый раз изменяется, findById или xpath с точными значениями не помогает.

Вы можете попробовать другие подходы, такие как: поиск соседей, родителей, детей, братьев и сестер и т. Д. c., Которые можно найти, а затем перемещаться до тех пор, пока не найдете свой скользкий <input>. Это будет немного дороже !!

Образцы в соответствии с вашей формой html:

имеют уникальный идентификатор

  • найти форму по id = преследование
parentElement = driver.find_element_by_id("myFormId")
  • получить все дочерние элементы
childElementsOfForm = parentElement.find_elements_by_xpath(".//*")
  • Перебрать элементы, получить второй и выполнить новый поиск внутри этого элемента. Мы можем видеть, что наш <input> в другом его потомке.

ищет все входные данные в форме

parentElement = driver.find_element_by_id("myFormId")
elementList = parentElement.find_elements_by_tag_name("input")

Итерирует их и ищет вход, идентификатор которого начинается с render_api

Расположение элементов с использованием расширенных селекторов CSS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...