如何识别几秒钟内消失的通知元素?

时间:2015-01-14 11:04:56

标签: selenium selenium-webdriver

我是一个测试用例,在创建项目后会显示通知,但该通知会在2-3秒内消失。

我想确定该通知的元素,但是当我尝试在firebug中检查元素时,它的HTML片段会很快消失,因为通知本身就会消失。因此,我无法识别它的元素,发现很难实现自动化。

有谁能建议如何应对这种情况?

3 个答案:

答案 0 :(得分:2)

既然你说“我有一个测试用例”,我认为你正在测试你的应用程序。解决问题的最简单方法是了解您的应用程序。即使第三方库提供通知代码,您也可以阅读文档以查看是否可以增加延迟,或者您可以阅读源代码以了解它如何创建元素以及在何处。

如果上述操作失败,那么如果您可以在Selenium中汇总一系列触发通知的操作,您应该能够快速获得body的序列化,然后您可以随意查看。使用Selenium for Python,它会:

print driver.execute_script("return document.body.outerHTML;")

我会使用重定向运行上面的代码,将print语句的输出保存到我​​随后要检查的文件中。如果您希望获得outerHTML后代的body,则可以使其更窄。我喜欢有一个很好的上下文,以便我知道元素的确切位置。我使用了库和配置来创建像body的子项这样的通知,还有一些将它们作为其他元素的子项。

答案 1 :(得分:0)

您可以使用以下 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());
}

答案 2 :(得分:0)

  1. 在通知之前打开上一页
  2. 按“ Ctrl + Shift + c”,导航到“来源”标签
  3. 执行手动步骤来生成通知,该通知将在几秒钟内隐藏起来
  4. 按“ F8”。页面加载脚本将被暂停
  5. 然后像往常一样检查元素并在方便时获取xpath
相关问题