Selenium WebDriver: Я хочу перезаписать значение в поле вместо добавления к нему с помощью клавиш отправки с помощью python

#python #selenium

Вопрос:

В WebDriver, если я использую SendKeys, он добавит мою строку к значению, которое уже существует в поле. Я не могу очистить его с помощью метода clear (), потому что в ту же секунду, когда я это сделаю, веб-страница выдаст сообщение об ошибке, в котором говорится, что она должна превышать 1. Поэтому я не могу его очистить, иначе возникнет ошибка, прежде чем я смогу ввести новое значение с помощью SendKeys, и если я отправлю ключи, оно просто добавит его к уже имеющемуся значению.

Есть ли в WebDriver что-нибудь, что позволяет перезаписать значение в поле?

Ответ №1:

Нет, в принципе .clear() должно сработать. но я сталкивался с этой проблемой несколько раз, она просто не работает. Кроме того, что вы подразумеваете под

выдаст ошибку, в которой говорится, что она должна быть больше 1.

Есть альтернативный способ, который в основном заключается в том, чтобы сделать control A, чтобы выделить весь текст, а затем нажать backspace.

код :-

 from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.CONTROL, 'a')
element.send_keys(Keys.BACKSPACE)
 

где элемент-это веб-элемент, в вашем случае-поле ввода.

Комментарии:

1. Какие файлы библиотеки thw нам нужны для этого

2. Это также должно быть импортировано from selenium.webdriver.common.keys import Keys , обновлено выше.

3. Как мы можем определить элемент для имени housetax

4. Я не знаю, что именно вы спросили, но я думаю, driver.find_elements_by_name('housetax') это должно сработать, плюс не задавайте другой вопрос/выходящий за рамки вопроса в разделе комментариев, попробуйте вместо этого отправить новый билет.