在 Protractor 的哪里放置 implicitlyWait?

Where to put implicitlyWait in Protractor?

如果我想使用 implicitlyWait,我应该把 browser.manage().timeouts().implicitlyWait(5000); 在测试中?

将其添加到量角器 conf.js 文件的 onPrepare() 函数中。添加 implicitlyWait() 的原因是因为隐式等待是量角器在通过或引发操作错误之前等待的默认时间。让量角器知道隐式等待时间是多少,甚至在测试开始之前就是使用它的最佳方式,并且 onPrepare() 函数在所有测试套件之前运行并且只运行一次。

示例场景:

假设您有以下代码行 -

element(LOCATOR).getText();

在您的测试规范中,量角器在页面上启动自动化后执行它。现在,如果在页面上找不到指定定位器的元素,则量角器不会立即抛出错误,而是等待 implicit 等待时间完成。同时直到隐式超时,它检查元素是否可以位于 DOM 上。在 implicit 等待时间结束时,如果未找到元素,则量角器会抛出相应的错误。因此,对于您执行的所有操作,有必要让量角器事先知道隐式等待时间。

用法:

onPrepare: function(){
    browser.manage().timeouts().implicitlyWait(5000);
},