web-dev-qa-db-ja.com

SeleniumWebドライバーを使用してエラーメッセージを確認します

ログインに失敗した後、表示されるエラーメッセージを確認したい。私はいつも「テストケースが失敗しました」というメッセージを受け取っています。

「無効なユーザー名またはパスワード」でテキストを確認したい。以下は私が試したコードです。

これはhtmlコードです。

<div id="statusMsg">
  <div class="alert in fade alert-error" style="opacity: 1;">
    <a class="close" data-dismiss="alert">×</a>
      Invalid username or password
  </div>
</div>

これらは私が試したコードです。

String actualMsg=driver2.findElement(By.xpath("//div[@id='statusMsg']/div")).getText()
String errorMsg= "× Invalid username or password";

if(actualError.equals(errorMsg)) {
        System.out.println("Test Case Passed");
    }else{
        System.out.println("Test Case Failed");
    };

出力は常に「テストケースに失敗しました」です。

これを修正する方法はありますか?

5

テキストを抽出するにはInvalid username or password次のように<div>タグに到達する必要があります。

String actualMsg = driver2.findElement(By.xpath("//div[@id='statusMsg']/div[@class='alert in fade alert-error']")).getAttribute("innerHTML");

次に、予想されるエラーメッセージは次のとおりです。

String errorMsg = "× Invalid username or password";

x<a>タグ内にあり、Invalid username or password<div>タグ内にあるため、検証プロセスには少し必要です。 String操作の。検証を簡単にするために、次のように予想されるエラーメッセージを減らすことができます。

String errorMsg = "Invalid username or password";

これで、次のコードブロックを使用して、actualMsgerrorMsgが含まれているかどうかを次のように確認できます。

if(actualMsg.contains(errorMsg)) 
{
    System.out.println("Test Case Passed");
}else
{
    System.out.println("Test Case Failed");
};
4
DebanjanB

Div内には「無効なユーザー名またはパスワード」というテキストしかありませんが、「×無効なユーザー名またはパスワード」を確認しています。最初に文字列actualMsgからテキストを出力してから、正しいerrorMsgを配置します。

String actualMsg = driver2.findElement(By.xpath("//div[@id='statusMsg']/div")).getText()
String errorMsg= "Invalid username or password";

if(actualError.equals(errorMsg)) {
        System.out.println("Test Case Passed");
    }else{
        System.out.println("Test Case Failed");
    }

;

0
Indrapal Singh