2016-10-04 79 views
0

[使用Chimp.js - 同步樣式webdriverio API]如何遍歷JSON元素列表並使用webdriverio訪問其屬性?

如何正確地遍歷我的數組元素? 或者更具體地說,我如何訪問元素本身的屬性?我很困惑於.elements() function found in the 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。值和我試試的函數的組合。幫幫我?

注意 - 如果我嘗試使用console.log("myItem: " + JSON.stringify(elemArray[myItem].ELEMENT));輸出變爲

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

回答

0

這裏的遍歷,並檢查在黑猩猩的元素,用印製探索元素本身:

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

根據您可以使用element命令單獨訪問每個元素:

可以使用'response.value'檢索元素數組,該元素是元素ID的集合,可以使用'.ELEMENT'方法在後續命令中訪問。

因此,對於你的循環:

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

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