我想验证登录失败后显示的错误消息。我总是得到"测试用例失败"我试过了。
我想用"无效的用户名或密码"来验证文本。以下是我试过的代码。
这是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");
};
输出总是&#34;测试用例失败&#34;。
有没有办法解决这个问题?
答案 0 :(得分:2)
要提取文字 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";
现在,您可以使用以下代码块来验证 actualMsg
是否包含 errorMsg
,如下所示:
if(actualMsg.contains(errorMsg))
{
System.out.println("Test Case Passed");
}else
{
System.out.println("Test Case Failed");
};
答案 1 :(得分:0)
在div内部,您只有文字“无效的用户名或密码”,但您正在验证“×无效的用户名或密码”。 首先从String 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");
}