¿Cómo puedo eliminar constantemente el texto predeterminado de un elemento de entrada con Selenium?

Estoy tratando de usar Selenium WebDriver para ingresar texto a un elemento de entrada GWT que tiene el texto predeterminado, "Ingresar ID de usuario". Aquí hay algunas maneras en que he tratado de hacer que esto funcione:

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

Lo extraño es que lo anterior esto solo funciona parte del tiempo. A veces, termina buscando "Ingresar IDus de usuario", básicamente comienza a escribir "nombre de usuario" después del texto predeterminado, y ni siquiera lo termina.

¿Alguna otra forma mejor y más confiable de eliminar el texto predeterminado de un elemento GWT?

Editado para añadir: El HTML del elemento de entrada. Desafortunadamente, no hay mucho que ver, gracias a la calidez de JS / GWT. Aquí está el campo cuando no está seleccionado:

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

Después de hacer clic y darle enfoque manualmente, se eliminan el texto predeterminado y la clase "vacía".

El JS asetDefaultText() se llama tantoonBlur() yonChange() si el cambio resulta en un campo de texto vacío. Supongo que por eso elsearchField.clear() no esta ayudando

También he pasado por este método en el modo de depuración, y en ese caso, nunca funciona. Cuando se ejecuta normalmente, funciona la mayor parte del tiempo. Aunque no puedo decir por qué.

Respuestas a la pregunta(4)

Su respuesta a la pregunta