如何在量角器中引入测试之间的延迟

How to introduce delay between tests in protractor

我正在使用 Cucumber 探索量角器工具并且测试执行得非常快.. 为了知道是否真的点击了元素,我正在使用 sleep() 方法但失败了。我还在使用另一种具有预期条件的方法 wait() ,但它也失败了。事实上,我理解 link 元素上的 click() 方法本身失败了。也就是说,无法点击我想要的元素需要,但是当我在控制台元素上打印时正在打印它的所有属性和方法。

请找到如下代码片段;

When(/^I click on "(.*?)" link$/,  (callback) => {
    console.log("Clicking... ");
    browser.wait(EC.visibilityOf(login.confirmInstructions), 5*1000, "Waiting for Confirmation link...");
    var confirmLink  = login.confirmInstructions;
    var isClickable  = EC.elementToBeClickable(confirmLink);
    browser.wait(isClickable, 10*1000, "Element clickable");
    confirmLink.click();

    browser.sleep(10*10000);
    login.confirmInstructions.click();
    //browser.wait(validateText(element(by.binding('myvar'))), 5000, "");
    //browser.wait(EC.presenceOf(confirmation.confirmScreen), 60*1000);
    console.log("waited");
    return callback;
});

我在这里缺少什么。?

我不确定我是否理解这个问题,但如果你只是想看看你的 "confirmInstructions" 是否被点击,你应该使用调试器并在方法

之前设置一个断点

我明白了,在量角器中等待 Web 元素的最佳方法是使用 wait() 而不是睡眠。但是,我正在寻找任何一种方式(通过使用等待/睡眠)来减慢测试执行速度,因为它在实现测试场景以识别 Web 元素时很有用。最后,下面的方法我现在正在使用它..但是如果有更好的处理方法请提出您的意见..

const sleep = (milliseconds) => {
    return new Promise(resolve => setTimeout(resolve, milliseconds));
}

并从我的函数中调用 sleep 作为:await sleep(2000);

现在,我可以继续编写测试了。我也确信量角器 API 中有更好的方法,但尚未找到它的实现。