Selenium WebDriverを使用して、デフォルトのテキスト「EnterUserID」を持つ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」を検索し、基本的にデフォルトのテキストの後に「username」と入力し始め、それを終了することさえありません。
GWT要素からデフォルトのテキストをクリアする他のより良い、より信頼できる方法はありますか?
追加するために編集:入力要素のHTML。残念ながら、JS / GWTの熱さのおかげで、見るものはあまりありません。選択されていない場合のフィールドは次のとおりです。
<input type="text" class="gwt-TextBox empty" maxlength="40">
クリックして手動でフォーカスを与えると、デフォルトのテキストと「空の」クラスが削除されます。
JSは、変更によって空のテキストフィールドが生成された場合のsetDefaultText()
両方onBlur()
で呼び出されます。onChange()
それが役に立たない理由だと思いsearchField.clear()
ます。
また、デバッグモードでこの方法を実行しましたが、その場合は機能しません。通常どおりに実行すると、ほとんどの場合機能します。でも、理由は言えません。