Что делает WebElement.clear() в текстовых блоках?
Недавно я столкнулся с проблемой работы с селеном, когда вызов clear()
в пользовательском текстовом поле вызывает проблемы при вводе текста позже в тесте. Текстовое поле проверяет (JavaScript
) browserEvents
, особенно keyDown
события. Я попытался выяснить, что делает clear()
, чтобы увидеть, может ли это повлиять на вещи, но я не могу найти никаких особенностей.
Источник привязок Java Selenium показывает, что clear()
не использует симуляцию клавиатуры или мыши, чтобы очистить текст от текстового поля, Так что же он делает?
Ответы
Ответ 1
Метод clear()
выполняет "Automation Atom" , который представляет собой функцию JavaScript, предназначенную для предоставления наименьшей базовой единицы функций автоматизации для браузера. В случае clear()
эта функция устанавливает свойство value
элемента в пустую строку (''), затем запускает событие onchange
в элементе. Функция атомов, которую вы интересуете, bot.action.clear()
Ответ 2
Вот что именно будет делать clear()
. Функция очистит значение текстового поля и включит текстовое поле. Перед вводом текста в текстовое поле необходимо очистить текстовое поле и включить его. Если мы не используем clear ()
, мы не можем вводить какое-либо значение в текстовое поле, используя селен.
driver.find_element_by_xpath(xpath).clear()
driver.find_element_by_xpath(xpath).send_keys("data")