量角器中的计数()与长度

根据文档,有两种方法可以获取 ElementArrayFinder 中有多少元素(element.all() 调用的结果):

  • $$(".myclass").length,记录在 这里:
<块引用>

...数组的length等于ElementArrayFinder找到的元素的length,每个结果代表执行的结果对元素的操作.

  • $$(".myclass").count(),记录在 这里:
<块引用>

计算ElementArrayFinder所代表的元素个数.

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

解决方案


$$(".myclass").length

需要解决 promise 以正确获取元素的长度.

//工作$$(".myclass").then(function(items){项目长度;});//不工作$$(".myclass").length;

<小时>

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

$$('.myclass').length 的包装器,它本身就是一个 Promise,不需要像 .length 那样解析 Promise

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

<小时><块引用>

应该首选哪一个?

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

否则 $$(".myclass").count() 应始终使用.

According to the documentation, there are 2 ways to get how many elements are inside the ElementArrayFinder (the result of element.all() call):

  • $$(".myclass").length, documented here:

...the array has length equal to the length of the elements found by the ElementArrayFinder and each result represents the result of performing the action on the element.

  • $$(".myclass").count(), documented here:

Count the number of elements represented by the ElementArrayFinder.

What is the difference between these two methods and which one should be preferred?

解决方案


$$(".myclass").length

Need to resolve the promise to get the length of element correctly.

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

// DOES NOT WORK
$$(".myclass").length; 


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

A wrapper for $$('.myclass').length which being a promise itself and doesn't require to resolve promise like .length

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


which one should be preferred?

Unless there some complex business when locating $$(".myclass") and .then(function(items){...}) involved then items.length will give better performance.

Otherwise $$(".myclass").count() should always be used.

相关文章