У меня следующий html:
<div class=‘content active’>
<div>
<div class=‘var’>
<div class=‘field var-field’>
<label>Interface Name</label>
<div class=‘ui input’>
<input type=‘input’ placeholder=‘.*’ value> ==$0
</div>
</div>
</div>
</div>
<div>
<div class=‘var’>
<div class=‘field var-field’>
<label>Neighbor Id</label>
<div class=‘ui input’>
<input type=‘input’ placeholder=‘.*’ value> ==$0
</div>
</div>
</div>
</div>
</div>
Мне нужно отправить текст в текстовое поле с меткой: Имя интерфейса. Есть ли способ однозначно написать xpath для отправки текста в текстовое окно. Обратите внимание, что единственный способ однозначной идентификации - это этикетка. Остальные поля тега одинаковы для обоих. Я пробовал использовать оператор И. Не повезло. Пожалуйста, помогите мне здесь.
@ Лутц Хорн. Даже я чувствовал это очень странно. Я не занимался разработкой этого веб-сайта. Это как-то работает. На данный момент я просто щелкаю элемент правой кнопкой мыши, затем копирую xpath и указываю * для максимально возможного покрытия иерархии. т.е. xpath: // * / div [2] / div [1] / div / div / div / input Очевидно, это работает, но я знаю, что это очень плохое решение. Следовательно попросил решение.
Вы можете использовать этот XPATH: - //*[text()='Interface Name']/following-sibling::div/input"
Попробуй это :
//label[text()='Interface Name']/following-sibling::div/child::input
Работает как шарм !! Большое спасибо !!
Чтобы отправить текст элементу <input>
относительно тега <label>
, вы можете создать функцию следующим образом:
def test_me(myText):
driver.find_element_by_xpath("//label[.='" + myText + "']//following::div[1]/input").send_keys("hello")
Теперь вы можете вызвать эту функцию из любого места в вашем скрипте следующим образом:
test_me("Interface Name")
# or
test_me("Neighbor Id")
Что вы имеете в виду под
input type=‘input’
? И, пожалуйста, покажите нам XPath, который вы пробовали. Это работает?