gpt4 book ai didi

javascript - 在测试之前需要 Protractor 等待服务返回

转载 作者:行者123 更新时间:2023-11-29 10:41:39 30 4
gpt4 key购买 nike

我对 Protractor 比较陌生,我无法让 Protractor 在测试前等待页面卸载。示例如下:

    //in loginPage object
function login(email, password) {
element(by.id('inputEmail')).sendKeys(email);
element(by.id('inputPassword')).sendKeys(password);
element(by.css('.btn.btn-primary')).click();
browser.driver.sleep(4000);
return !(element(by.binding('userCtrl.labels.signIn()')).isPresent());
}

然而,sleep 语句不起作用,如下所示,即使登录成功并且浏览器离开登录页面,下面的测试也总是失败:

        //in separate test page
it('should allow a valid user to login', function() {
expect(loginPage.login('tiratf@gmail.com', '12345678')).toBe(true);
});

谢谢!

最佳答案

Protractor 操作(例如 isPresent())返回一个 promise ,而不是基础值。即这是一个 promise :element(by.binding('userCtrl.labels.signIn()')).isPresent()

请阅读此 https://github.com/angular/protractor/blob/master/docs/control-flow.md

这应该通过:

function login(email, password) {
element(by.id('inputEmail')).sendKeys(email);
element(by.id('inputPassword')).sendKeys(password);
element(by.css('.btn.btn-primary')).click();
browser.driver.sleep(4000);
return element(by.binding('userCtrl.labels.signIn()')).isPresent();
}

--

//in separate test page
it('should allow a valid user to login', function() {
expect(loginPage.login('tiratf@gmail.com', '12345678')).toBe(false);
});

expect 所做的是解开 promise ,以便您可以断言其潜在值(value)。

关于javascript - 在测试之前需要 Protractor 等待服务返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27913814/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com