使用 selenium Web 驱动程序验证错误消息

Posted

技术标签:

【中文标题】使用 selenium Web 驱动程序验证错误消息【英文标题】:Verify an error message using selenium web driver 【发布时间】:2018-06-03 19:15:27 【问题描述】:

我想验证登录失败后显示的错误消息。我总是得到我尝试过的“测试用例失败”。

我想用“无效的用户名或密码”验证文本。以下是我尝试过的代码。

这是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");
    ;

输出总是“测试用例失败”。

有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

要提取文本Invalid username or password,您必须访问&lt;div&gt; 标记,如下所示:

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 位于 &lt;a&gt; 标记内,而 Invalid username or password 位于 &lt;div&gt; 标记内,因此验证过程需要对 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");
;

【讨论】:

【参考方案2】:

在 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");
    

;

【讨论】:

以上是关于使用 selenium Web 驱动程序验证错误消息的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium Web 驱动程序检测 Windows 身份验证提示?

如何使用java中的selenium Web驱动程序中的分页搜索表中的元素

python 中的 Web Scraping:BS、selenium 和 None 错误

Selenium UI自动化验证码:识别+输入

带有 Cassandra 服务的 Selenium Web 驱动程序

如何使用 Windows 身份验证和 Firefox 运行 Selenium NUnit 测试?