2016-10-04 3 views
0

[Chimp.jsの使用 - 同期スタイルwebdriverio API]webdriverioを使用してJSON要素のリストを反復処理し、その属性にアクセスするにはどうすればよいですか?

どのようにして要素の配列を適切に反復処理できますか? 具体的には、要素自体の属性にどのようにアクセスすればよいですか?私は.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に呼び出し

(出力)

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

は...未定義の呼び出しを与えるので、それはおそらく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" 

答えて

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コマンドを使用して各要素に個別にアクセスできます。

要素の配列は、要素IDの集合である 'response.value'を使用して取得でき、後続のコマンドで'ELEMENT 'メソッドを使用してアクセスできます。あなたのforループだから、

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

for (myItem in elemArray){ 
    console.log(browser.getAttribute(myItem, 'alt')); 
}; 
関連する問題