2016-10-04 2 views
0

[Verwenden von Chimp.js - synchrone Webdriveri-API]Wie durchläuft man eine Liste von JSON-Elementen und greift auf deren Attribute mit webdriverio zu?

Wie kann ich mein Array von Elementen richtig durchlaufen? Oder, genauer gesagt, wie greife ich auf die Attribute der Elemente selbst zu? Ich bin verwirrt bezüglich der .elements() function found in the API und wie man die Elemente selbst von dort extrahiert.

var myItem; 
var elemArray = browser.elements('.castMemberPicture').value; 
console.log(elemArray); 

for (myItem in elemArray){ 
    console.log("myItem: " + myItem); 
    // I can log the JSON obj IDs successfully, but can’t seem to access elements like clientHeight, alt, ... 
}; 

Wie kann ich auf die Attribute zugreifen?

(Ausgang)

[ { ELEMENT: '0' }, 
    { ELEMENT: '1' }, 
    { ELEMENT: '2' }, 
    { ELEMENT: '3' }] 
myItem: 0 
myItem: 1 
myItem: 2 
myItem: 3 

... zu .Element Aufruf gibt undefiniert Anrufe, so ist es wahrscheinlich, meine Verwendung der API/Syntax.

Ich sah https://github.com/webdriverio/webdriverio/issues/273, aber ich kann nicht auf die Attribute zugreifen, egal welche Kombination von .ELEMENT .value und Funktion, die ich versuche. Hilfe?

note - wenn ich versuche, die Elemente selbst durch Drucken mit console.log("myItem: " + JSON.stringify(elemArray[myItem].ELEMENT)); der Ausgang wird

[ { ELEMENT: '0' }, 
    { ELEMENT: '1' }, 
    { ELEMENT: '2' }, 
    { ELEMENT: '3' }] 
myItem: "0" 
myItem: "1" 
myItem: "2" 
myItem: "3" 

Antwort

0

Hier ist die Art und Weise zu erkunden, es zu durchqueren und die Elemente in Chimp überprüfen:

var myItem; 
var elemArray = browser.elements('.castMemberPicture').value; 
console.log(elemArray); 

// the following will traverse the array and print out the elements 'alt' Attribute! 
for (myItem in elemArray){ 
    console.log(browser.elementIdAttribute(myItem, 'alt').value); 
}; 
0

Nach die Dokumentation für 'Elemente', können Sie jedes Element einzeln mit dem Befehl aufrufen:

Das Array von Elementen kann mit dem 'response.value' abgerufen werden, der eine Sammlung von Element-IDs darstellt und auf die in den nachfolgenden Befehlen mit der '.ELEMENT' Methode zugegriffen werden kann.

Also für Ihre Schleife:

var myItem; 
var elemArray = browser.elements('.castMemberPicture').value; 

for (myItem in elemArray){ 
    console.log(browser.getAttribute(myItem, 'alt')); 
}; 
Verwandte Themen