Как перебрать список элементов 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'));
};
Другие вопросы по тегам