2016-08-07 4 views
0

これは数時間前から考えていますが、解決策が見つかりません。だから、基本的に私はこのul li divからデータを取得してjsonに保存する

<ul class="list"> 
    <li class="user"> 
     <div class="name">Name</div> 
     <div class="surname">Surname</div> 
    </li> 
    <li class="user odd"> 
     <div class="name">Name</div> 
     <div class="surname">Surname</div> 
    </li> 
    <li class="user"> 
     <div class="name">Name</div> 
     <div class="surname">Surname</div> 
    </li> 
    <!--And like so....--> 
</ul> 

のようなリストを持っており、これは私のナイトウォッチスクリプトが

.elements('css selector','.li',function(result){ 
    console.log(result.value); 
    }); 

結果は[] =空の配列

あるしかし、主な質問がどうなるかですがどのように見えるかでありますul liのすべてのデータを実行し、jsonファイルのようにconsole.logを書くベストプラクティス?

のように:あなたのいずれかが助けることができる場合は

{ 
    "name": "name", 
    "surname": "Yaya", 
}, 
{ 
    "name": "name2", 
    "surname": "Yaya2", 
}, 

が、私は、このためのいくつかのハンディキャップを与えてください。

+0

私はそれをテストしているし、正常に動作するようです。あなたのhtmlはhtmlタグの中にありますか? – mic4ael

+0

あなたの答えをありがとう!いいえ、<!DOCTYPE html>はではありませんが、json形式でデータを実行する方法と、コンソールでテキストデータを取得できない理由を理解できません。 – F1dzh

答えて

0

純粋なJSでは次のようなことができますか。

var lis = document.querySelectorAll("ul li"), 
 
     i = 0, 
 
    jData = []; 
 
for (var li of lis) { 
 
    var divs = li.getElementsByTagName("div"), 
 
    liObj = {}; 
 
    for (var div of divs) liObj[div.className] = div.textContent; 
 
    jData.push(liObj); 
 
} 
 
jData = JSON.stringify(jData); 
 
console.log(jData);
<ul class="list"> 
 
    <li class="user"> 
 
     <div class="name">Name</div> 
 
     <div class="surname">Surname</div> 
 
    </li> 
 
    <li class="user odd"> 
 
     <div class="name">Name</div> 
 
     <div class="surname">Surname</div> 
 
    </li> 
 
    <li class="user"> 
 
     <div class="name">Name</div> 
 
     <div class="surname">Surname</div> 
 
    </li> 
 
    </ul>

+0

ありがとうございました!しかし、私はnightwatch.jsの前の例のようにこれを実行する必要があります。 – F1dzh

+0

'.execute(function(){ var lis = document.querySelectorAll(" ul li ")、 i = 0、 jData = []; (LISのVaRのリチウム){ するvarのdiv = li.getElementsByTagName( "DIV")のため 、 liObj = {};のため (div要素のVaRのDIV)liObj [div.className] = div.textContent; JDATA。 – F1dzh

+0

@Kyrgios私はNightwatch.jに精通していませんが、あなたが見つかったことを嬉しく思っています。それを実装する方法。 – Redu

関連する問題