2016-01-12 9 views
0

Моя задача - получить детей из какого-то элемента, прорезировать их и использовать assertwatch assert сделать некоторые тесты. Вот пример кода, который мне нужен:Nightwatch.js. Получить дочерние узлы, итерации через них

browser.url("http://someurl.com") 
    .getAttribute("#parent", "children", function (children) { 
     var assert = browser.assert; 

     var fisrtChild = children[0]; 
     var secondChild = children[1]; 

     assert.equal(fisrtChild.innerHTML, "Hello"); 
     assert.equal(secondChild.innerHTML, "World"); 
    }) 

Итак, Nightwatch может сделать что-то вроде этого?

P.S. Я попытался использовать команду «elements», но он возвращает что-то вроде этого:

{ state: 'success', 
sessionId: '63af98a9-d395-4e44-9529-e24a7ad7ff87', 
hCode: 1223583237, 
value: [], 
class: 'org.openqa.selenium.remote.Response', 
status: 0 } 

ответ

0

Во-первых, «дети» НЕ являются допустимым атрибутом для элементов HTML.

Во-вторых, функция обратного вызова просто передает результат указанной команды, если вы дадите ей аргумент. Таким образом, отображаемый объект является фактическим результатом команды getAttribute.

вы могли бы использовать команду browser.execute, чтобы позволить вам делать то, что вы пытаетесь сделать

существу сделать что-то вроде следующего: -

var firstChild; 
var secondChild; 

browser.execute(function() { 

     var childNodes = []; 

     childNodes.push(document.getElementById('parentID').childNodes); 
     firstChild = childNodes[0].innerHTML; 
     secondChild = childNodes[1].innerHTML; 

}, []) 

тогда Вы сможете выполнить утверждения по значениям firstChild и secondChild.

ПРИМЕЧАНИЕ: Не проверял это, и вы, возможно, придется играть с ним немного, но, надеюсь, вы получите общее представление

+0

Спасибо так много! –

Смежные вопросы