错误:函数超时,确保承诺在 - Cucumber js 内解决

问题描述

我正在使用带有黄瓜 js 的量角器 我有 async 和 await 的所有功能,还设置了全局超时

var {setDefaultTimeout} = require('cucumber'); setDefaultTimeout(60 * 1000);

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

  });

问题 - 如果我使用错误的 xpath/element 不在 UI 中,在这种情况下会出现以下错误

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

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

或者如果我直接使用

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

});

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

为什么不显示 - 在控制台上找不到元素错误..?

解决方法

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

如果隐式等待时间超过默认时间,我们用来获取此错误函数超时,请务必使用 in **** 解决。如果隐式等待时间小于默认时间,则通过隐式等待等待元素将首先到期并抛出 Element Not Found 异常。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...