![](/img/trans.png)
[英]WebdriverIO How to loop through a list of elements that is not an actual table or list
[英]How to iterate through a list of JSON elements and access their attributes using webdriverio?
[使用Chimp.js –同步樣式的webdriverio API]
如何正確遍歷元素數組? 或者,更具體地說,如何訪問元素本身的屬性? 我對API中的.elements()函數以及如何從中提取元素本身感到困惑。
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));
打印來探索元素本身console.log("myItem: " + JSON.stringify(elemArray[myItem].ELEMENT));
輸出變為
[ { ELEMENT: '0' },
{ ELEMENT: '1' },
{ ELEMENT: '2' },
{ ELEMENT: '3' }]
myItem: "0"
myItem: "1"
myItem: "2"
myItem: "3"
這是遍歷並檢查Chimp中元素的方法:
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”檢索元素數組,該元素是元素ID的集合,並且可以在后續命令中使用“ .ELEMENT”方法進行訪問。
因此,對於您的循環:
var myItem;
var elemArray = browser.elements('.castMemberPicture').value;
for (myItem in elemArray){
console.log( browser.getAttribute(myItem, 'alt'));
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.