代码之家  ›  专栏  ›  技术社区  ›  alecxe

count()与Protractor中的长度

  •  9
  • alecxe  · 技术社区  · 8 年前

    根据文档,有两种方法可以获取 ElementArrayFinder (结果 element.all() 呼叫):

    • $$(".myclass").length ,记录在案 here :

    …阵列具有 length 等于 元素阵列查找器 并且每个结果表示对元素执行动作的结果。

    • $$(".myclass").count() ,记录在案 here :

    计算由 元素阵列查找器 .

    这两种方法有什么区别,应该首选哪一种?

    1 回复  |  直到 8 年前
        1
  •  15
  •   Linh Pham    5 年前

    $$(".myclass").length

    需要解决正确获取元素长度的问题。

    // WORK
    $$(".myclass").then(function(items){
      items.length;
    });
    
    // DOES NOT WORK
    $$(".myclass").length; 
    

    $$(".myclass").count()

    包装器 $$('.myclass').length 这本身就是一个承诺,不需要像 .length

    $$(".myclass").count(); 
    

    应该首选哪一个?

    除非在定位时有一些复杂的业务 $$(".myclass") .then(function(items){...}) 当时涉及 items.length 将提供更好的性能。

    否则 $$(“.myclass”).count() 应始终使用。