Javascript Object.keys不';t将方法名称打印为属性
我正在使用量角器使用xpathJavascript Object.keys不';t将方法名称打印为属性,javascript,selenium,jasmine,protractor,ecmascript-5,Javascript,Selenium,Jasmine,Protractor,Ecmascript 5,我正在使用量角器使用xpath数据网格[@name=“someTable”]选择一个表,然后使用classnamesomeColumn选择列中的单元格 var cells = element(by.xpath('//data-grid[@name="someTable"]').all(by.css('.someColumn')) 当我执行Object.keys(cells)(或)Object.getOwnPropertyNames(cells),它不会显示count属性 对象。键输出 ptor
数据网格[@name=“someTable”]
选择一个表,然后使用classnamesomeColumn
选择列中的单元格
var cells = element(by.xpath('//data-grid[@name="someTable"]').all(by.css('.someColumn'))
当我执行Object.keys(cells)
(或)Object.getOwnPropertyNames(cells)
,它不会显示count
属性
对象。键
输出
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)
它起作用了
打印单元格
对象的属性时,为什么不显示计数
函数?object.keys()方法返回对象的可枚举属性。某些属性可能存在时,可枚举
标志设置为false
。你可以试试
console.log(Object.getOwnPropertyDescriptor(numberOfRows, "count"));
这是因为量角器中的count()
不是元素的属性count()
函数作用于ElementArray之上,通过计算指定定位器的元素数返回值
它只是元素定位器上的一个包装器,用于放置所有已定位的元素
元素,然后将数组的长度作为count in返回
承诺的形式
希望这能有所帮助。我已经尝试了Object.getOwnPropertyNames(cells)
来获取非枚举项,但是没有用。。。我也尝试了你的修复,它返回未定义的…@MadhavanKumar我的建议不是“修复”-问题是不是一个对象的所有属性都是可枚举的。