2016-12-05 119 views
0

Nightwatchjs elementIdText功能有困难,从多个IDNightwatchjs返回文本,使用elementIdText功能,不妨来自异步功能。在一个循环

我发现了一个阵列的Web元素ID,并试图使文本它们所包含的数组。

我这样做,因为原始的getText函数不会遍历所有元素,但只是第一次出现。

我的常用功能:

module.exports = { 
    'ChildOf' : function(browser, path, callback) { 
    browser 
    .elements('css selector', path, function(elements) { 
     var array = []; 
     elements.value.forEach(function(element) { 
     array.push(element.ELEMENT); 
     }) 
     //console.log(array); out: Final array filled; Works great 
     callback(array); 
    }) 
    }, 

    'getText' : function(browser, elements, callback) { 
    var array = []; 
    elements.forEach(function(element) { 
     browser.elementIdText(element, function(result) { 
     array.push(result.value); 
     //console.log(array); out: Multiple incremented arrays; Need the final array :\ 
     }) 
     //console.log(array); out: Multiple empty arrays; Doesn't work 
    }) 
    //console.log(array); out: Single empty array; Doesn't work 
    callback(array); 
    } 
] 

我的呼叫:

module.exports = { 
    'myStep' : function(browser, expect) { 
    common.ChildOf(browser, '.txt', function(elements) { 
     common.getText(browser, elements, function(result) { 
     //browser.verify.equal(result, expect) 
     }) 
    }) 
    } 
}; 

我需要得到的字符串从我的自定义的getText功能正在添加的全满阵,我可以比较到另一个阵列(数据驱动测试),有什么想法?

回答

0

使用promise(Q),添加了4行,这要归功于this Nightwatchjs Github问题。