Selenium:javascriptを使用してフォームフィールドから値をクリアするにはどうすればよいですか?
-
06-07-2019 - |
質問
selenium IDEとSelenium-Fitnesse Bridgeフィクスチャを使用しています。フォームフィールドからデフォルト値をクリアすると、フォームにエラーメッセージが表示されることをテストしようとしています。
したがって、Selenium IDEで記録すると、Seleniumに何も入力しないように指示するのと同じことになります。
| type | text_field | |
これに関する問題は、私が使用しているFitnesseフィクスチャが、2番目の引数がnullでないことを期待していることです。
Seleniumには、「値を消去」する方法があります。 「何も入力しない」ではなく?
解決 2
これを使用して動作させました。 reg_start_date
は入力フィールドのIDです。
| storeEval | window.document.getElementById('reg_start_date').value = '' |
セレン参照から:
デフォルトでは、スニペットは" selenium"のコンテキストで実行されることに注意してください。オブジェクト自体なので、
this
はSeleniumオブジェクトを参照します。window
を使用して、アプリケーションのウィンドウを参照します。window.document.getElementById( 'foo')
また、javascript {}でjavascriptコードをラップしないでください。動作しません。
他のヒント
次のようにjavascriptを使用して実行できます。
| verifyEval | javascript{this.browserbot.getCurrentWindow().document.getElementById('CONTROL_ID').value = ''} ||
事実、verifyEvalステートメントを使用すると、任意のjavascriptを実行できます。 Seleniumで達成するのが難しい問題をもっと簡単にします。
このチュートリアルを使用して(今日信じられないかもしれませんが)アウト。
この問題は最初にもありました。試してください:|タイプ| text_field |空白|
空白とnullの使用に関するFitnesseドキュメントの詳細を参照してください。
:)