我有一个测试用例,在创建项之后,会显示通知,但通知在2-3秒内消失。
我想识别该通知的元素,但是当我试图在firebug中检查元素时,它的HTML片段会很快消失,因为通知本身消失了。因此,我无法识别它的元素,并且发现它很难自动化。
有人能建议如何处理这种情况吗?
发布于 2015-01-14 11:33:08
既然你说“我有一个测试用例”,我就认为你在测试你的应用程序。解决问题的最简单的方法就是了解应用程序。即使第三方库正在提供通知代码,您也可以读取文档以查看是否可以增加延迟,或者可以读取源代码来确定它是如何创建元素和元素的。
如果上面的操作失败,那么如果您可以在Selenium中找到一系列触发通知的操作,那么您应该能够足够快地获得body的序列化,以便您可以在空闲时进行检查。使用,如下所示:
print driver.execute_script("return document.body.outerHTML;")我将使用重定向运行上面的代码,以便将print语句的输出保存到一个文件中,然后在空闲时检查该文件。如果你愿意的话,你可以通过得到outerHTML的body后代来缩小它的范围。我喜欢有一个很好的上下文,这样我就知道元素是在哪里创建的。我使用了创建通知的库和配置,比如body的子通知,还有一些将它们作为其他元素的子元素。
发布于 2020-07-11 19:11:44
发布于 2015-01-14 11:17:14
您可以使用下面的JAVA代码来,等待20秒,直到任何带有文本“您的通知”的元素出现在页面中
try{
WebDriverWait wait = new WebDriverWait(driver,20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(text(),'Your notification here')]")));
}catch(Throwable e){
System.err.println("Error while waiting for the notification to appear: "+ e.getMessage());
}https://stackoverflow.com/questions/27941406
复制相似问题