Python / Selenium: как установить «значение» для ввода, если оно не указано в исходном коде страницы?

1

Это html на сайте:

<input name="PROJECT_CODE" type="text" size="15">

Но на самом деле, если вы проверяете элемент, вы можете редактировать его во входном значении, а сайт обновляется, заполняя пробел, то есть:

<input name="PROJECT_CODE" type="text" size="15" value="VALUE">

Поэтому при поиске по xpath у меня возникают проблемы с изменением входного значения (не говоря уже о локализации). Это то, что я сейчас имею, угадывая, что value = "".

projcode = raw_input("what the projcode? \n")
projcode_retrieved = driver.find_element_by_xpath("//input[@value=""]")
projcode_retrieved.send_keys(projcode)

Помощь будет принята с благодарностью!

Теги:
selenium
input

2 ответа

3
Лучший ответ

Так работает HTML. Не используйте атрибут @value при поиске input s. Вместо этого вы можете использовать что-то, что не меняется, например:

driver.find_element_by_name("PROJECT_CODE")
0

вы также можете попробовать использовать xpath для элемента,

driver.find_element_by_xpath("*//input[@name='PROJECT_CODE']");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню