Javaでしばらくの間Seleniumスクリプトを書いています。今日、私は非常に奇妙な問題に遭遇しました。
ここに問題があります:webelement.clear()メソッドを使用してテキストフィールドをクリアしました。後で次のコマンド(クリックイベント)を実行すると、以前にクリアしたテキスト領域に、以前に入力された値が入力されます。
コードスニペットは次のとおりです。
mobileNumField.get(0).clear();
Thread.sleep(4500);
emailAddress.get(0).click();
emailAddress.get(0).clear();
Thread.sleep(4500);
emailAddress.get(0).sendKeys(Keys.TAB);
入力しようとしているフィールドのautocomplete
属性がオンに設定されている可能性があります。 [参照]
行の実行時にclear()
が機能する場合、これはWebドライバー固有の問題ではないと言っても安全です。
作業中のページセクションのHTMLスニペットを表示できると便利です。
可能なデバッグ領域:
幸運を!
PS:それらThread.sleep
(s)はお勧めできません。
要素がその値を保持する正確な理由はわかりませんが、「Ctrl + A」キーと「Delete」キー入力を要素に送信することで、別のクリーンアップを試すことができます。
emailAddress.sendKeys(Keys.chord(Keys.CONTROL,"a", Keys.DELETE));
私にとってはpythonで機能した別の方法ですが、エレガントとは言えません:
for _ in range(4):
risk_percentage.send_keys(Keys.BACK_SPACE)
同様の問題に直面しました。入力フィールドはクリアされますが、エラーメッセージは更新されません。一部の入力フィールドは、文字を入力して削除した場合にのみ正しく機能するようです。
element.sendKeys(text);
element.sendKeys(Keys.SPACE, Keys.BACK_SPACE);