在测试之前需要量角器等待 return 的服务
need protractor to wait for a service to return prior to testing
我对量角器比较陌生,我无法让量角器在测试前等待页面卸载。示例如下:
//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()
)return 一个承诺,而不是潜在的价值。
即这是一个承诺: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 所做的是解开承诺,以便您可以断言其潜在价值。
我对量角器比较陌生,我无法让量角器在测试前等待页面卸载。示例如下:
//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()
)return 一个承诺,而不是潜在的价值。
即这是一个承诺: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 所做的是解开承诺,以便您可以断言其潜在价值。