【问题标题】:How can I check if an element has been removed from the DOM?如何检查某个元素是否已从 DOM 中删除?
【发布时间】:2012-02-20 02:29:37
【问题描述】:

我正在使用 Selenium WebDriver (WebDriver.dll) v2.19.0,我需要验证一个元素是否已从 DOM 中删除。

如何验证某个元素不再位于 DOM 中?

我有一个RemoteWebDriver,我用它来引用一个div,其中有一个删除按钮。单击此按钮时,某些 JavaScript 会删除 div,我需要确认 div 不再在 DOM 中。 div 在 DOM 中并不是唯一的,很多人都喜欢这样做。有没有办法查询网络驱动程序以查看该元素是否仍然存在?

【问题讨论】:

    标签: asp.net selenium-rc webdriver


    【解决方案1】:

    我不知道您使用什么语言(WebDriver.dll 看起来像 c# 或其他什么?)。但这适用于我认为的每种语言。一种解决方案可能是调用 WebDriver 的 findElement() 方法并尝试获取 div 元素。如果 div 不再附加到 DOM,你会得到一个ElementNotFoundException。我知道这不是一个好的设计,但它可以成为这种情况下的解决方案:您可以捕获异常,然后您知道 div 不再附加到 DOM(我知道,异常的目的不是程序逻辑,例如这个)。

    另一种解决方案是使用getPageSource() 方法查询源代码。如果您的元素仍然附加到 DOM,那么您可以使用 XML-Parsers 自己解析源代码。

    【讨论】:

      猜你喜欢
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      相关资源
      最近更新 更多