一度Webページ(FirstPageと呼ぶ)に正しいデータを入力して送信すると、SecondPageが取得されます。しかし、間違ったデータを入力して送信をクリックすると、FirstPageに書き込まれたエラーメッセージが表示され、SecondPageは表示されません。私のテストでは、 "幸せなパス"をテストしていて、FirstFormを提出する必要がありますが、間違ったデータによるデータ検証などの否定的なテストもあり、FirstPageで報告されたすべてのエラーメッセージをキャッチする必要があります。 私はこれを処理するこのアプローチを使用しました。あなたが同意するか、同意しないか、より良い方法があるかどうか聞いてみたいと思います。Seleniumでのページ提出とデータ検証の処理
public class FirstPage {
public SecondPage clickSubmit() {
webDriver.findElement(By.id("submit")).click();
WebDriverWait wait = new WebDriverWait(webDriver, 10);
try { wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("someElementOnSecondPage")));
return new SecondPage();
} catch (TimeoutException ex) {
return null;
}
}
public List<String> getAllErrorMessages() throws Exception {
// code for getting all error messages
}
}
public class FirstPageTest {
@Test
public void dataValidation() throws Exception {
// some intial code where I create firstPage and fill it with BAD data
firstPage.submit();
List<String> allMessages = firstPage.getAllErrorMessages();
// Check if messages are fine or not
}
}
私が適切にページを送信するテストでは、submit()メソッドがSecondPageを返したかどうかを確認しません。私は、SecondPageが返されたときにテストを続行し、そうでなければテストは失敗します。私は価値を返すものをチェックする必要はないと思う。
ありがとうございました。私は主にロケータをどれくらいひどく使っていたかに驚いています。 –