Object.keys 不会将方法名称打印为 属性

Object.keys doesn't print the method name as a property

我使用量角器 select a table 使用 xpath data-grid[@name="someTable"] 然后使用类名 someColumn 到列中的 select 单元格。

var cells = element(by.xpath('//data-grid[@name="someTable"]').all(by.css('.someColumn'))

当我执行 Object.keys(cells)(或)Object.getOwnPropertyNames(cells) 时,它不显示 count 属性。

Object.keys 输出,

ptor_,getWebElements,actionResults_,locator_,click,sendKeys,getTagName,getCssValue,getAttribute,getText,getSize,getLocation,isEnabled,isSelected,submit,clear,isDisplayed,getOuterHtml,getInnerHtml,getId,getRawId

当我这样做时,

expect(numberOfRows.count()).toBe(2)

有效

为什么打印 cells 对象的属性时 count 函数不显示?

Object.keys() 方法 returns 对象的 enumerable 属性。某些属性可能会在 enumerable 标志设置为 false 的情况下出现。你可以试试

console.log(Object.getOwnPropertyDescriptor(numberOfRows, "count"));

去看看。

因为量角器中的count()不是element/elements.all()的属性。 count() 函数在 ElementArray 之上工作,returns 通过计算具有指定定位器的元素数来计算值。 Check the implementation of count()

Its just a wrapper over element locator which puts in all the located elements into an array and then returns the array's length as count in the form of promise.

希望对您有所帮助。