Jak mogę konsekwentnie usuwać domyślny tekst z elementu wejściowego za pomocą Selenium?
Próbuję użyć Selenium WebDriver do wprowadzenia tekstu do elementu wejściowego GWT, który ma domyślny tekst „Wprowadź ID użytkownika”. Oto kilka sposobów, w jaki próbowałem to uruchomić:
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);
Dziwne jest to, że powyższe działa tylko przez pewien czas. Czasami kończy się szukaniem „Enter User IDus”, zaczynając od wpisania „username” po domyślnym tekście - i nawet nie kończąc tego.
Wszelkie inne lepsze, bardziej niezawodne sposoby usuwania domyślnego tekstu z elementu GWT?
Edytowane, aby dodać: HTML elementu wejściowego. Niestety, nie ma wiele do zobaczenia, dzięki uprzejmości JS / GWT. Oto pole, które nie jest zaznaczone:
<input type="text" class="gwt-TextBox empty" maxlength="40">
Po kliknięciu i ręcznym ustawieniu ostrości domyślny tekst i „pusta” klasa zostają usunięte.
JS dosetDefaultText()
zostaje obu nazwanyonBlur()
ionChange()
jeśli zmiana spowoduje puste pole tekstowe. Zgadnij, dlaczegosearchField.clear()
nie pomaga.
Przechodziłem również przez tę metodę w trybie debugowania iw takim przypadku nigdy nie działa. Gdy działa normalnie, działa przez większość czasu. Nie mogę jednak powiedzieć dlaczego.