如何比较selenium webdriver中HTML弹出窗口中是否存在部分文本?

时间:2016-12-13 04:49:20

标签: java selenium xpath selenium-webdriver compare

我需要检查HTML弹出窗口中是否存在部分文本,因为某些文本是动态的。

我的情景是这样的:

  • 输入用户名和密码,然后单击登录按钮。
  • 系统显示警告信息:密码为,到期时间为dd / mm / yy(到期日为动态)在此日期之前,重置密码

我只想检查密码是否是'文本是否存在。 还有其他HTML弹出窗口具有相同的div IDclass,只有警报消息文本不同。

HTML代码:

<div id="msgBox1481602403457" class="msgBox" style="opacity: 1; top: 19.5px; left: 566.5px; background-image: url("styles/images/msgBoxBackGround.png");">  
<div class="msgBoxTitle">Information</div>
  <div>
     <div class="msgBoxContainer">
     <div id="msgBox1481602403457Image" class="msgBoxImage">
     <img src="styles/images/info.png">
 </div>

<div id="msgBox1481602403457Content" class="msgBoxContent">
  <p>
    <span>
       The Password is,
       <br>
       Expires on dd/mm/yy
       <br>
       Before this date,
       <br>
        Reset the password
    </span>
   </p>
  </div>
 </div>
 <div id="msgBox1481602403457Buttons" class="msgBoxButtons">
</div>
</div>

1 个答案:

答案 0 :(得分:1)

以这种方式试试 -

String divText = driver.findElement(By.xpath("@class='msgBoxContent'")).getText();

以上代码行应该为您提供该div中的全文 - 密码为,到期时间为dd / mm / yy在此日期之前,重置密码

然后使用contains()方法检查您要查找的文本是否可用。

if(divText.contains("The Password is")) {
    System.out.println("match found");
} else {
    System.out.println("match not found");
}