我想编写一个可以检测此消息的脚本"系统未响应您的请求。请稍后再试。"如下面的截图所示。当出现此消息时,我想验证并向开发团队发送邮件。
我为验证目的编写的片段,但它对我不起作用,请提示一些替代方案:
String s1 = d1.findElementByXPath(".//*[@id='showSearchResultDiv']").getText();
System.out.println(s1);
答案 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'行。