Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Object.keys不';t将方法名称打印为属性_Javascript_Selenium_Jasmine_Protractor_Ecmascript 5 - Fatal编程技术网

Javascript Object.keys不';t将方法名称打印为属性

Javascript 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

我正在使用量角器使用xpath
数据网格[@name=“someTable”]
选择一个表,然后使用classname
someColumn
选择列中的单元格

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我的建议不是“修复”-问题是不是一个对象的所有属性都是可枚举的。