我在量角器测试中有这样的代码,它进入主页确定我们需要登录然后调用此函数。注意我在NODE.js环境中运行它:
if(condition1)
// code here
else if(condition2)
// code here
else if(condition3)
{
//nothing to do
}
else
// error case here
但在验证function Login() {
browser.findElement(by.id('ID')).then(function (ele) {
ele.sendKeys('SomeUserName');
browser.findElement(by.id('password')).then(function (ele) {
ele.sendKeys('SomePassword');
browser.findElement(by.partialButtonText('Sign in')).then(function (ele) {
ele.click();
browser.getCurrentUrl().then(function (url) {
expect(url).toBe("http://NextURLAfterClick");
debugger;
});
});
});
});
}
之前,我无法点击此处,因此我发现的是我正在获取登录页面的网址, I想要在点击登录后获取网址。
我怀疑这是对我的异步性质如何运作的误解。
答案 0 :(得分:2)
如何使量角器的部件等待或变为同步?
您可以在browser.wait()
的帮助下等待网址更改:
var urlChanged = function(url) {
return function () {
return browser.getCurrentUrl().then(function(actualUrl) {
return url === actualUrl;
});
};
};
element(by.id('ID')).sendKeys('SomeUserName');
element(by.id('password')).sendKeys('SomePassword');
element(by.partialButtonText('Sign in')).click();
browser.wait(urlChanged("http://NextURLAfterClick")), 5000);
其中urlChanged
,selenium
条款,是"自定义预期条件"。