我正在使用夜视并尝试迭代元素列表。但是,当我没有获得对象或元素时,我会得到一个字符串数组。
CODE
browser.elements("css selector", ele, function(r){
browser.perform(function(){
console.log("LIST", r);
})
})
RETURN
LIST { sessionId: 'b273b874-c084-4d17-8bbe-a911a170ef25',
status: 0,
state: 'success',
value:
[ { ELEMENT: '6' },
{ ELEMENT: '7' },
{ ELEMENT: '8' },
{ ELEMENT: '9' },
{ ELEMENT: '10' },
{ ELEMENT: '11' } ],
class: 'org.openqa.selenium.remote.Response',
hCode: 995684858 }
value
应该返回webElements的对象吗?
提前致谢
答案 0 :(得分:10)
我在这个问题上挣扎了一段时间,直到我查看了一些Selenium文档。
基本上这是预期会回归的。那些ELEMENT项是WebElement JSON对象。您可以使用一些Selenium命令来尝试查找有关它们的其他信息,如下所示:
_.each(list.value, function(element, i){ //using underscore instead of for loop.
browser.elementIdAttribute(element.ELEMENT, 'name', function(result){
//result.value will contain the name attribute on the element
}
}
您可以在此处查看selenium上的命令列表: http://nightwatchjs.org/api#protocol
最后,文档中的ID指的是上面的element.ELEMENT。
希望有所帮助!
答案 1 :(得分:-1)
当我尝试访问特定属性并验证其值时。选择的webelement对于每次运行都是不同的。
我的代码在这里
browser.elements('css selector', 'header.modal-header > h2', (results) => {
results.value.forEach((v, k) => {
browser.elementIdAttribute(v.ELEMENT, 'tabindex',
function (index) {
if (index.value !== '-1') {
browser.verify.fail(`Expected tab index -1 not found for ContactUs header ${key}`);
}
});