Как перебрать список элементов JSON и получить доступ к их атрибутам с помощью webdriverio?
[Использование Chimp.js - синхронный стиль API webdriverio]
Как правильно перебрать массив элементов? Или, более конкретно, как мне получить доступ к атрибутам самих элементов? Я запутался в том, что функция.elements(), найденная в API, и как извлечь из нее сами элементы.
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, ...
};
Как мне получить доступ к атрибутам?
(выход)
[ { ELEMENT: '0' },
{ ELEMENT: '1' },
{ ELEMENT: '2' },
{ ELEMENT: '3' }]
myItem: 0
myItem: 1
myItem: 2
myItem: 3
... вызов.ELEMENT дает неопределенные вызовы, так что, скорее всего, я использую API / синтаксис.
Я видел https://github.com/webdriverio/webdriverio/issues/273 но не могу получить доступ к атрибутам, независимо от того, какую комбинацию.ELEMENT .value и функции я пробую. Помогите?
примечание - если я попытаюсь исследовать сами элементы, печатая, используя console.log("myItem: " + JSON.stringify(elemArray[myItem].ELEMENT));
выход становится
[ { ELEMENT: '0' },
{ ELEMENT: '1' },
{ ELEMENT: '2' },
{ ELEMENT: '3' }]
myItem: "0"
myItem: "1"
myItem: "2"
myItem: "3"
2 ответа
Вот способ пройти его и проверить элементы в шимпанзе:
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);
};
В соответствии с документами для "элементов", вы можете получить доступ к каждому элементу в отдельности, используя element
команда:
Массив элементов может быть извлечен с использованием "response.value", который представляет собой набор идентификаторов элементов и может быть доступен в последующих командах с использованием метода ".ELEMENT".
Итак, для вашего цикла:
var myItem;
var elemArray = browser.elements('.castMemberPicture').value;
for (myItem in elemArray){
console.log( browser.getAttribute(myItem, 'alt'));
};