2016-08-08 2 views
0

Возникли еще вопросы при изучении javascript и javascript fm. Так что я хотел бы понять, каким образом можно получить доступ кПолучение значения элемента Json от элемента ID

{ Element: 1 }, { Element: 2},... 

Потому что внутри это подробная информация об этом массиве.

И следующий шаг, мне нужно, чтобы сделать его как формат JSON, где исполняет как

[{name: "MyName", surname: "mySurname"}, {name: "MyName", surname: "mySurname"}] 

и так, но мне нужно, чтобы получить это для любого из

{ Element:1}, {Element:2}, .... 

I» м, используя nightwatch.js и мой код прямо сейчас выглядит следующим образом:

.elements('css selector', 'ul li', function(res){ 
    console.log(res.value) 
    console.log(res.value[1].ELEMENT) 
    browser.elementIdAttribute(res.value[1].ELEMENT, 'li', function(newRes) { 
     console.log(newRes.value) 
    }) 
    }) 

это выполняет


[ { ELEMENT: '1' }, 
    { ELEMENT: '2' }, 
    { ELEMENT: '3' }, 
    { ELEMENT: '4' } ] 
2 
null 

Вот HTML:

<html> 
<meta charset="utf-8"> 
<body> 
<ul class="random"> 
    <li class="list"> 
     <div class="name">Nick</div> 
     <div class="surname">Kyrgios</div> 
     <div class="age">22</div> 
     <div class="city">London</div> 
    </li> 

    <li class="list odd"> 
     <div class="name">Nick</div> 
     <div class="surname">Kyrgios</div> 
     <div class="age">22</div> 
     <div class="city">London</div> 
    </li> 
    <li class="list"> 
     <div class="name">Nick</div> 
     <div class="surname">Kyrgios</div> 
     <div class="age">22</div> 
     <div class="city">London</div> 
    </li> 

    <li class="list odd"> 
     <div class="name">Nick</div> 
     <div class="surname">Kyrgios</div> 
     <div class="age">22</div> 
     <div class="city">London</div> 
    </li> 
</ul> 
</body> 
</html> 

Вот ссылка на документацию (при необходимости) http://nightwatchjs.org/api#elementIdValue

ответ

1

То, что вы хотите достичь невозможно.

Вы получаете null, потому что используете неправильную команду. Как вы можете видеть здесь, оно используется для set значения для элементов. https://github.com/nightwatchjs/nightwatch/blob/master/lib/api/element-commands.js#L293

То, что вы на самом деле хотите, чтобы использовать .elementIdText как:

module.exports = { 
    'Test' : function(browser) { 

    function iterate(elements) { 
     elements.value.forEach(function(el) { 
     browser.elementIdText(el.ELEMENT, function(r) { 
      console.log(r.value); 
     }); 
     }); 
    } 

    browser 
     .url('http://simsonivini.lv/nightwatch.php') 
     .waitForElementVisible('body', 8000) 
     .elements('css selector', 'ul li div', iterate) 
     .end(); 
    } 
}; 
+0

Спасибо, теперь я получаю результат: Кирьос 22 Лондон 4 раза, как сделать его в формат JSON? – F1dzh