Как можно последовательно удалить текст по умолчанию из элемента ввода с помощью Selenium?

Я пытаюсь использовать Selenium WebDriver для ввода текста в элемент ввода GWT, который имеет текст по умолчанию, & quot; Ввести идентификатор пользователя & quot ;. Вот несколько способов, которыми я пытался заставить это работать:

        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);

Странно то, что выше это работает только иногда. Иногда заканчивается поиск «Введите ID пользователя», в основном начинающий вводить «имя пользователя» после текста по умолчанию - и даже не заканчивая это.

Есть ли другие лучшие, более надежные способы очистки текста по умолчанию из элемента GWT?

Edited to add: HTML-код элемента ввода. К сожалению, из-за жаркости JS / GWT увидеть особо нечего. Вот поле, когда оно не выбрано:

<input type="text" class="gwt-TextBox empty" maxlength="40">

После того, как я щелкнул по нему и передал фокус вручную, текст по умолчанию и "пусто" класс удаляются.

JS дляsetDefaultText() вызывается какonBlur() а такжеonChange() если изменение приводит к пустому текстовому полю. Угадай, почемуsearchField.clear() не помогает.

Я также прошел через этот метод в режиме отладки, и в этом случае он никогда не работает. Когда работает нормально, он работает большую часть времени. Я не могу сказать почему, хотя.

Ответы на вопрос(4)

Ваш ответ на вопрос