【问题标题】:Difference between isPresent and isElementPresent [duplicate]isPresent 和 isElementPresent 之间的区别 [重复]
【发布时间】:2014-12-23 07:58:23
【问题描述】:

ElementFinder.prototype.isPresentElementFinder.prototype.isElementPresent 有什么区别?

听起来 isElementPresent 等待 Angular 完成,而 isPresent 只是立即进行检查,但我无法确定。

目前,isElementPresent 按照Protractor bug 已损坏,因此我无法手动测试差异。

【问题讨论】:

  • 哎呀,也许它没有坏,但我用错了。看起来isElementPresent 期望定位器作为参数。如果有多个子元素匹配定位器,它将返回true - 我认为。不过,我绝对可以使用验证。
  • 嗨@mitchell,请考虑将我的答案标记为“已接受”。

标签: javascript google-chrome protractor


【解决方案1】:

isPresentisElementPresent 都返回 "Element Finder",其中:

" 表示 ElementArrayFinder 的单个元素(并且更像是一个便利对象)。因此,可以使用 ElementFinder 完成的任何事情也可以使用 ElementArrayFinder 完成。ElementFinder 可以被视为 WebElement特别是对于大多数用途,您可以像对 WebElement 一样对它们执行操作(即单击、getText)。”

读者文摘版:你可以在上面调用方法或测试它是否存在。

isElementPresent实际调用isPresent如果满足定位符,见return语句:

他们基本上做同样的事情。 Protractor 建立在WebDriver 之上,它有自己的方法。您也可以在 Protractor 中使用这些方法。如果使用这些方法测试 Angular 可能会导致错误信息,他们会为用户提供 Angular 解决方法;由于您提到的原因,isElementPresent 就是其中之一。

tl;dr: 使用isPresent。它是为 Protractor 构建的,用于测试 Angular。

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 2011-04-08
    • 2012-11-24
    • 2013-06-05
    • 2021-09-29
    • 2020-05-27
    • 2016-03-23
    • 2012-08-11
    • 2012-11-24
    相关资源
    最近更新 更多