【问题标题】:Error: function timed out, ensure the promise resolves within - Cucumber js错误:函数超时,确保承诺在内部解决 - Cucumber js
【发布时间】:2021-05-15 05:50:51
【问题描述】:

我正在使用量角器和黄瓜 js 我拥有异步和等待的所有功能,还设置了全局超时

var {setDefaultTimeout} = 需要('黄瓜'); setDefaultTimeout(60 * 1000);

Then('I click on tab', async ()=> {
  
    await organizationOperation.clickHeaderTab();

  });

问题 - 如果我使用错误的 xpath/元素不在 UI 中,在这种情况下会低于错误

错误:函数超时,确保承诺在 60000 毫秒内解决

它应该抛出一个找不到错误定位器(定位器文本)

或者如果我直接使用

  Then('I click on tab', async ()=> {
      
 const d = await $('.xxxxx').getText();
     console.log(d)

});

得到同样的错误 --> 错误:函数超时,确保承诺在 30000 毫秒内解决

为什么它没有显示 - 控制台上的元素未找到错误..?

【问题讨论】:

  • 添加你的 clickHeaderTab 函数
  • 异步 clickHeaderTab(){ return await organizationComponent.clickHeaderTab(); }
  • 您能否提供有关您的问题的更多详细信息?有更多的代码 sn-ps?
  • 假设这是个简单的例子 Then('I click on tab', async ()=> { const d = await $('.xxxxx').getText(); // css path is not在 UI 上使用 console.log(d) });在这种情况下,它应该返回在控制台上找不到的元素。但得到承诺不会在 60000 英里秒内解决......就像那样

标签: javascript typescript protractor ui-automation cucumberjs


【解决方案1】:

您是否在启动浏览器时在代码中使用了隐式等待?如果是,请确保您的超时时间超过您提供的隐式等待时间。 如果不是,则声明隐式等待时间小于默认的 setDefaultTimeout(60 * 1000);

如果隐式等待超过默认时间,我们曾经让这个错误函数超时,请确保在 **** 中解决。如果隐式等待小于默认时间,则通过隐式等待等待元素会先过期,并抛出 Element Not Found 异常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 2018-04-02
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    相关资源
    最近更新 更多