2016-07-29 8 views
2

要素を反復処理して、すべての要素に対して何かを実行したいとします。今のところ私は次のコードを持っていますが、選択した要素から属性を取得することはできません。Webdriver.io要素の使用

client.elements("freeforms-widget").then(function (elems) { 
      for (let elem of elems.value) { 
      let k = client.elementIdAttribute(elem.ELEMENT,'name'); 
      console.log(k); 
      } 
     }) 

そして、私が見るすべては以下の通りです:

{ state: 'pending' } 
{ state: 'pending' } 
{ state: 'pending' } 
{ state: 'pending' } 
{ state: 'pending' } 
{ state: 'pending' } 

elems自体は私が間違っているとどのようにそれを修正するよ何

{ state: 'success', 
    sessionId: 'dd301839-369a-45a2-a38c-4bb8ce0a439b', 
    hCode: 1204992695, 
    value: 
    [ { ELEMENT: '0' }, 
    { ELEMENT: '1' }, 
    { ELEMENT: '2' }, 
    { ELEMENT: '3' }, 
    { ELEMENT: '4' }, 
    .... 

罰金のようですか?

答えて

2

elementIdAttribute()返信a 約束 - { state: 'pending' }は未解決の未決約束の文字列です。コンソールに実際の価値を表示するには、約束事を解決する必要があります。

client.elementIdAttribute(elem.ELEMENT,'name').then(function (k) { 
    console.log(k); 
}); 
+1

これは機能しますが、理想的ではありません。これは、要素を互いに比較するときに、たくさんのコールバックを持つコードを書く必要があることを意味します。 –

関連する問題