Я пытаюсь использовать Selenium WebDriver для ввода текста в элемент ввода GWT, который имеет текст по умолчанию, "Введите идентификатор пользователя". Вот несколько способов, с помощью которых я попытался заставить это работать:
searchField.click();
if(!searchField.getAttribute("value").isEmpty()) {
// clear field, if not already empty
searchField.clear();
}
if(!searchField.getAttribute("value").isEmpty()) {
// if it still didn't clear, click away and click back
externalLinksHeader.click();
searchField.click();
}
searchField.sendKeys(username);
Странная вещь выше, это работает только некоторое время. Иногда он заканчивает поиск "Enter User IDus", в основном начинающий вводить "имя пользователя" после текста по умолчанию - и даже не заканчивая это.
Любые другие более надежные способы очистки текста по умолчанию от элемента GWT?
Отредактировано для добавления: HTML элемента ввода. К сожалению, этого не видно, благодаря жаре JS/GWT. Здесь поле, когда оно не выбрано:
<input type="text" class="gwt-TextBox empty" maxlength="40">
После того, как я щелкнул его и дал ему фокус вручную, текст по умолчанию и "пустой" класс удаляются.
JS to setDefaultText()
получает вызов как onBlur()
, так и onChange()
, если изменение приводит к пустому текстовому полю. Угадайте, почему searchField.clear()
не помогает.
Я также прошел этот метод в режиме отладки, и в этом случае он никогда не работает. При нормальной работе он работает большую часть времени. Однако я не могу сказать, почему.