如何检查元素是否已从DOM中删除?

时间:2012-02-19 16:47:53

标签: asp.net selenium-rc webdriver

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

如何验证元素不再存在于DOM中?

我有RemoteWebDriver我正在使用它来获取对div的引用,其中包含删除按钮。单击此按钮时,某些JavaScript会删除div,我需要确认div不再位于DOM中。 div在DOM中并不是唯一的,很多人都喜欢。有没有办法查询Web驱动程序,以查看该元素是否仍然存在?

1 个答案:

答案 0 :(得分:2)

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

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