节点承诺与webdriver.io

时间:2016-12-15 10:55:37

标签: selenium promise webdriver-io

我正在尝试运行selenium web scrapping并失败。请查看代码段。

var webdriverio = require('webdriverio');
var client = webdriverio
              .remote({ 
                desiredCapabilities: { 
                 browserName:'chrome' 
                } 
              });
module.exports = function(some_url) {
 return new Promise(function(resolve) {
    client
     .init()
     .newWindow(some_url)
     .getHTML('html')
     .then(function(html) {
       var some_data = someFactory(html); // do some data scraping
       Promise
        .all(
         some_data
          .some_array
          .map(function (data) {
            return new Promise(function(resolve) {
             client
              .newWindow(data.other_link)
              .getHTML('html')
              .then(function (html) {
                var $ = cheerio.load(html); // do some more scraping
                resolve(html);
              })
              .end();
            });
          })
        )
        .then(function (data) {
          // execution never comes here while I get html in 
          // the mapped function
          resolve(some_data, data);
        });
     ).end();
});

以上执行永远不会完成。它永远不会从内部块中出来。 任何帮助将不胜感激。

0 个答案:

没有答案