微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试使用 lib protractor-intercept 时遇到问题:可能是 Javascript 异步问题

如何解决尝试使用 lib protractor-intercept 时遇到问题:可能是 Javascript 异步问题

我在尝试使用 lib protractor-intercept 时遇到问题,我认为这可能是我遇到的 Javascript 异步问题。此代码有效,但不会打印出 console.log 行。知道我是怎么弄错的吗?

When('the {string} button is clicked',async (buttonName: string) => {
 var intercept = new Intercept(browser);
 intercept.addListener();
 await page.submitApplication(buttonName);
 intercept.getRequests().then(function(reqs) {
   console.log("Intercepted!! " + reqs);
   //Todo extract a value from submit http query response
 });
 await page.waitForSpinnerButtonFinish();
});

这是我的页面对象方法

  submitApplication(buttonName: string) {
    return new Promise(function (resolve) {
      var promised = element(by.css('app form')).element(
         by.cssContainingText('button span',buttonName)).click();
      return resolve(promised);
    });
  }

解决方法

我没有找到 intercept.addListener(); 返回什么的文档,但为了安全起见,我会选择 await。然后我不会将 .thenawait 混用。看看这是否会起作用

submitApplication(buttonName: string) {
    return element(by.css('app form'))
      .element(by.cssContainingText('button span',buttonName))
      .click();
    });
  }
When('the {string} button is clicked',async (buttonName: string) => {
 var intercept = new Intercept(browser);
 await intercept.addListener();
 await page.submitApplication(buttonName);
 let reqs = await intercept.getRequests()
 console.log("Intercepted!! " + reqs);
 await page.waitForSpinnerButtonFinish();
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。