守夜人没有导航到网址

时间:2017-10-26 17:53:19

标签: javascript cucumber nightwatch.js

我有以下代码,发生的事情是,一旦承诺得到解决,浏览器就不会导航到url,它只停留在nightwatch.conf.js上定义的默认页面上。所以测试失败了。

Given(/^I make a post request and retreive the Id i got the page + id$/, () => {
      //I make the post request 
      var transactionIdPromise = utils.getTransactionId(1);

      return transactionIdPromise.getBody('utf8').then(JSON.parse).done(function (result) {
          var id = result.transaction_id;
          var url = "https://mywebpage.com:8443/" + id;
          client.url(url)
      });
    });

2 个答案:

答案 0 :(得分:0)

你必须正确地链接承诺。由于client.url是一个异步操作,它返回一个promise。你必须返回它才能使Cucumber.js运行器等待整个承诺链解决,然后再进行下一步。

Given(/^I make a post request and retreive the Id i got the page + id$/, () => {
      //I make the post request 
      var transactionIdPromise = utils.getTransactionId(1);

      return transactionIdPromise.getBody('utf8').then(JSON.parse).then((result) => {
          var id = result.transaction_id;
          var url = "https://mywebpage.com:8443/" + id;
          return client.url(url)
      });
    });

答案 1 :(得分:0)

我的解决方案是改变已完成的承诺,即使我仍然不确定为什么这样做。