如何识别在几秒钟内消失的通知元素?
How to identify element for notifications that disappear within few seconds?
我有一个测试用例,在创建项目后显示通知,但该通知会在 2-3 秒内消失。
我想识别该通知的元素,但是当我尝试检查 firebug 中的元素时,它的 HTML 片段很快就消失了,因为通知本身消失了。因此我无法为它识别元素并且发现它很难自动化。
有人可以建议如何处理这种情况吗?
您可以使用下面的 JAVA 代码 等待 20 秒,直到任何带有文本 'your notification' 的元素出现在页面中:
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());
}
既然你说 "I've a test case",我认为你正在测试你的应用程序。解决问题的最简单方法是了解您的应用程序。即使第三方库提供了通知代码,您也可以阅读文档以查看是否可以增加延迟,或者您可以阅读源代码以弄清楚它是如何创建元素的以及在哪里创建的。
如果上述方法失败,那么如果您可以在 Selenium 中收集触发通知的一系列操作,您应该能够足够快地获得 body
的序列化,然后您可以在您的闲暇。将 Selenium 用于 Python,它将变为:
print driver.execute_script("return document.body.outerHTML;")
我会 运行 上面的代码重定向,以将 print
语句的输出保存到一个文件中,然后我会在闲暇时检查该文件。如果您愿意,可以通过获取 body
的后代的 outerHTML
来缩小范围。我喜欢有一点上下文,这样我就知道元素的确切创建位置。我使用库和配置将此类通知创建为 body
的子元素,有些将它们作为其他元素的子元素。
- 打开通知前的上一页
- 按“Ctrl+Shift+c”,导航到“来源”选项卡
- 执行手动步骤生成通知,通知将在几秒后隐藏
- 按“F8”。页面加载脚本将暂停
- 然后照常检查元素并在您方便时获取 xpath
我有一个测试用例,在创建项目后显示通知,但该通知会在 2-3 秒内消失。
我想识别该通知的元素,但是当我尝试检查 firebug 中的元素时,它的 HTML 片段很快就消失了,因为通知本身消失了。因此我无法为它识别元素并且发现它很难自动化。
有人可以建议如何处理这种情况吗?
您可以使用下面的 JAVA 代码 等待 20 秒,直到任何带有文本 'your notification' 的元素出现在页面中:
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());
}
既然你说 "I've a test case",我认为你正在测试你的应用程序。解决问题的最简单方法是了解您的应用程序。即使第三方库提供了通知代码,您也可以阅读文档以查看是否可以增加延迟,或者您可以阅读源代码以弄清楚它是如何创建元素的以及在哪里创建的。
如果上述方法失败,那么如果您可以在 Selenium 中收集触发通知的一系列操作,您应该能够足够快地获得 body
的序列化,然后您可以在您的闲暇。将 Selenium 用于 Python,它将变为:
print driver.execute_script("return document.body.outerHTML;")
我会 运行 上面的代码重定向,以将 print
语句的输出保存到一个文件中,然后我会在闲暇时检查该文件。如果您愿意,可以通过获取 body
的后代的 outerHTML
来缩小范围。我喜欢有一点上下文,这样我就知道元素的确切创建位置。我使用库和配置将此类通知创建为 body
的子元素,有些将它们作为其他元素的子元素。
- 打开通知前的上一页
- 按“Ctrl+Shift+c”,导航到“来源”选项卡
- 执行手动步骤生成通知,通知将在几秒后隐藏
- 按“F8”。页面加载脚本将暂停
- 然后照常检查元素并在您方便时获取 xpath