2016-08-08 91 views
2

我想从我的HTML UL列表执行这样的JSON对象,这样返回JSON对象nightwatch.js

{name: "Nick", surname:"Kyrgios", age: "22", city: "Sydney"}, {....}, {....} 

这是HTML部分

<html> 
<ul> 
    <li class="user"> 
    <div class="name">Nick</div> 
    <div class="surname">Kyrgios</div> 
    <div class="age">22</div> 
    <div class="city">Sydney</div> 
    </li> 
    <li class="user odd"> 
    <div class="name">Nick</div> 
    <div class="surname">Kyrgios</div> 
    <div class="age">22</div> 
    <div class="city">Sydney</div> 
    </li> 
</ul> 
</html> 

我nightwatch js文件

browser.elements('css selector','ul li', function (result) { 
    els = result.value; 
    var i = 0; 
    els.forEach(function(el, j, elz){ 
    browser.elementIdText(el.ELEMENT, function(text) { 
     console.log(text) 
    }) 
    }) 
}) 

这将执行

{ state: 'success', 
    sessionId: 'cdfdda85-4348-4692-9ad0-2a5d10080a27', 
    hCode: 151444186, 
    value: 'Nick\nKyrgios\n22\nSydney', 
    class: 'org.openqa.selenium.remote.Response', 
    status: 0 } 
{ state: 'success', 
    sessionId: 'cdfdda85-4348-4692-9ad0-2a5d10080a27', 
    hCode: 118749018, 
    value: 'Nick\nKyrgios\n22\nSydney', 
    class: 'org.openqa.selenium.remote.Response', 
    status: 0 } 

主要的问题是我怎么可以把它改成正常的JSON格式一样

{name: "Nick", surname:"Kyrgios", age: "22", city: "Sydney"}, {....}, {....} 

回答

1

运行的console.log每一次 - 你会自动获得一个回车。每次调用console.log都会将您移到一行。

你应该将结果追加为一个字符串

var jsonString = ""; 
    els.forEach(function(el,j,elz) { 
     browser.elementIdText(el.ELEMENT, function(text) { 
     jsonString += text; 
    }) 
console.log(jsonString); 
+0

啊,还是什么都没有! – F1dzh