条件 - 使用Selenium断言

时间:2015-03-19 06:54:09

标签: selenium selenium-webdriver webdriver assertions browser-automation

enter image description here

我想编写一个可以检测此消息的脚本"系统未响应您的请求。请稍后再试。"如下面的截图所示。当出现此消息时,我想验证并向开发团队发送邮件。

我为验证目的编写的片段,但它对我不起作用,请提示一些替代方案:

String s1 = d1.findElementByXPath(".//*[@id='showSearchResultDiv']").getText();
        System.out.println(s1);

2 个答案:

答案 0 :(得分:1)

在编写自动化代码时要记住要小心。如果场景并不总是出现,则无法尝试找到XPath,因为如果对象(基于XPath)不存在,则无法获取文本()。您可能需要尝试/捕获代码,然后将println放在try中。这种情况会经常发生,因此您可能希望在WebDriver之上编写自己的框架来处理这些用例。

如果那不是问题。对未能捕获异常的代码进行try / catch。

答案 1 :(得分:-1)

在检查文本之前,您应该尝试等待元素出现:

for (int second = 0;; second++) {
    if (second >= 60) fail("timeout");
    try { if (d1.findElementByXPath(".//*[@id='showSearchResultDiv']").isDisplayed()) break; } catch (Exception e) {}
    Thread.sleep(1000);
}
String s1 = d1.findElementByXPath(".//*[@id='showSearchResultDiv']").getText();
System.out.println(s1);

确切的代码可能会有所不同,具体取决于您正在测试的网页(例如,如果元素每次都不显示,则应删除'fail'行。