アプリケーションの自動テストを作成中です。私が考えたテストの 1 つは、アプリケーションの XSS 脆弱性 (具体的にはスクリプト/マークアップ インジェクション) をチェックすることです。
テキスト入力を受け入れるフィールドがあるとします。
<input id="messageInput" name="message" />
そして、次のように入力メッセージ else を出力するとします。
<p id="messageOutput">You entered ${message}</p>
<b>Hello</b>
最も単純なテスト ケースでは、プレーン テキストの代わりになどのマークアップをフィードしようとします。
マークアップが実際にブラウザーでレンダリングされていないことを確認するにはどうすればよいですか? 私が考えることができる汚い方法の 1 つは、入力を表示する要素に移動することです。
@FindBy(id = "messageOutput")
WebElement messageOutput;
public boolean isMarkupRendered() {
try {
messageOutput.findElement(By.tagName("b"));
return true;
} catch (NoSuchElementException e) {
return false;
}
}
ただし、これは私のメソッドを私が提供する可能性のある種類のテストデータに結び付けます-次のような入力を操作するには十分に一般的ではありません
<script>document.body.style.backgroundColor='red'</script>
ここに何か提案はありますか?Selenium はこれを行うためのよりクリーンな方法を提供していますか?