【问题标题】:How to sleep for 10 seconds using Mocha, Chai and protractor如何使用摩卡、柴和量角器睡 10 秒
【发布时间】:2020-01-15 09:08:08
【问题描述】:

所以我一直遇到 .sleep 功能的问题,它似乎跳过了睡眠功能,原因是我需要使用用户名和密码手动登录(弹出窗口),并且在我手动输入后我想要程序继续。

基本上就是这么简单:

describe('Personal information', function() {
    var EC = protractor.ExpectedConditions;

    this.timeout(50000);

    it('enter email', function(done) {
        browser.sleep(10000).then(function() {
            console.log('waited 10 seconds');
        });

        browser.wait(EC.presenceOf(piPage.enterEmail('test@test.com')), 5000);
        //enterEmail = element(by.id('email'));
    });
});

基本上我想做的是我想等待 10 秒,然后它应该寻找元素是否已经出现。一旦出现,然后继续输入电子邮件等代码。但是,此时此代码将立即运行并且永不休眠。

【问题讨论】:

    标签: javascript protractor mocha.js chai


    【解决方案1】:

    我发现有时我需要在 selenium 驱动程序实例本身而不是 Protractor 上调用 sleep。所以这将涉及使用browser.driver 而不是像这样只使用browser

    browser.driver.sleep(10000).then(function() {
        console.log('waited 10 seconds');
    });
    

    【讨论】:

    • 啊,确实如此。我也想弄清楚。 browser.wait(element, 10000) 似乎也没有等待 10000 毫秒。你也遇到过这个问题吗?
    • 您需要在 browser.wait 中使用预期条件或类似功能,而不是元素本身。它通过不断检查函数是否在给定的时间内返回 true 来工作,如果不是则抛出异常。如果您在跳过命令时遇到一般问题,请检查您的配置中是否设置了 SELENIUM_PROMISE_MANAGER:false。如果是(或者您正在使用量角器 v6+),您将需要对所有这些命令使用 async/await 语法
    • 哦,对了,我用了例子.then(() => browser.wait(checkoutPage.getPageTitle(), 5000))这不应该真的有效吗?
    • 这不起作用,因为checkoutPage.getPageTitle() 每次返回值时都会通过检查,正如我在第一个答案中提到的那样,您需要某种形式的预期条件。我认为您需要研究 browser.wait 的实际工作原理才能更好地理解这一点
    • 好吧,我想我得到了 browser.wait 在这种情况下完全错误。谢谢!
    【解决方案2】:

    使用async function

    it('enter email', async function(done) {
        await browser.sleep(10000).then(function() {
            console.log('waited 10 seconds');
        });
    
        await browser.wait(EC.presenceOf(piPage.enterEmail('test@test.com')), 5000);
        //enterEmail = element(by.id('email'));
    });
    

    【讨论】:

    • 我遇到了超级奇怪的错误。出于某种原因,它说“(节点:16408)UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性'isPresent'”但是我根本没有任何isPresent?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 2018-05-24
    • 2015-05-01
    • 1970-01-01
    • 2016-05-07
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多