所有功能都以相似的方式存在细微的差异。这是我发现的一些差异-
elm.isPresent()
--
- 是的扩展,
ElementFinder
因此在执行任何操作之前等待Angular解决。 - 它在
elm
is和element(locator)
orElementFinder
not 时起作用ElementArrayFinder
。如果使用locator
指定的元素返回了多个元素,则检查第一个元素是否isEnabled()
在DOM中。不接受任何参数作为输入。 - 最适合与Angular页面和Angular元素一起使用。
- 在需要查找是否存在元素时使用的第一优先级。
elm.isElementPresent(subLoc)-(当有子定位符时
elm)
- 是的扩展,
ElementFinder
因此在执行任何操作之前等待Angular解决。 - 用于检查作为父级的子元素的元素的存在。它以
sub locator
父级elm
为参数。(仅与此和之间的区别elm.isPresent()
) - 最适合与Angular页面和Angular元素一起使用。
- 在需要检查父项的子元素是否存在时使用的第一优先级。
browser.isElementPresent(element ||Locator)
--
- 是的实现,
webdriver
因此不等待角度稳定下来。 - 如果使用同一定位符定位多个元素,则将a
locator
或anelement
作为参数并使用第一个结果。 - 最佳用于非角度页面。
- 在非角度页面上进行测试时使用的首选。
上面所有这些检查DOM中元素的存在并返回
boolean结果。虽然角度和非角度特征不会影响这些方法的使用,但是当该方法默认等待角度建立时,还有一个附加的优势,即在找不到像角度的元素或状态元素引用异常的情况下,有助于避免错误,等等…



