首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何识别几秒钟内消失的通知元素?

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

Stack Overflow用户
提问于 2015-01-14 11:04:55
回答 3查看 6.6K关注 0票数 2

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

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

有人能建议如何处理这种情况吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-14 11:33:08

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

如果上面的操作失败,那么如果您可以在Selenium中找到一系列触发通知的操作,那么您应该能够足够快地获得body的序列化,以便您可以在空闲时进行检查。使用,如下所示:

代码语言:javascript
复制
print driver.execute_script("return document.body.outerHTML;")

我将使用重定向运行上面的代码,以便将print语句的输出保存到一个文件中,然后在空闲时检查该文件。如果你愿意的话,你可以通过得到outerHTMLbody后代来缩小它的范围。我喜欢有一个很好的上下文,这样我就知道元素是在哪里创建的。我使用了创建通知的库和配置,比如body的子通知,还有一些将它们作为其他元素的子元素。

票数 3
EN

Stack Overflow用户

发布于 2020-07-11 19:11:44

  1. 在通知之前打开上一页。
  2. 按"Ctrl+Shift+c“键,导航到”源“选项卡
  3. 执行手动步骤生成通知,通知将在几秒钟内隐藏。
  4. 按"F8“。页面加载脚本将暂停。
  5. 然后像往常一样检查元素,并在方便的时候获取xpath。
票数 0
EN

Stack Overflow用户

发布于 2015-01-14 11:17:14

您可以使用下面的JAVA代码,等待20秒,直到任何带有文本“您的通知”的元素出现在页面

代码语言:javascript
复制
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());
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27941406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档