Ваш <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