I am using nightwatch and trying to iterate through a list of elements. However, when I don't get objects or elements, but I get an array of strings.
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 }
The value
should be returning an object of webElements right?
Thanks in advance
I struggled on this one for a little bit until I went through some of the Selenium documentation.
Essentially that is what's expected to return. Those ELEMENT items are WebElement JSON objects. You can use some of the Selenium commands to try and find additional information on them doing something like this:
_.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
}
}
You can see the list of commands on selenium here: http://nightwatchjs.org/api#protocol
Lastly, the ID that's in the documentation there is referring to that element.ELEMENT above.
Hope that helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With