我已经看过很多次人们建议使用它:
browser.ignoreSynchronization=true; // or false
Run Code Online (Sandbox Code Playgroud)
但我不明白我们为什么需要它?
我正在使用量角器和茉莉花来测试一个网站.我想知道当前的网址,以验证测试.
我试过了
function waitForUrlToChangeTo(urlRegex) {
var currentUrl;
return browser.getCurrentUrl().then(function storeCurrentUrl(url) {
currentUrl = url;
}
).then(function waitForUrlToChangeTo() {
return browser.wait(function waitForUrlToChangeTo() {
return browser.getCurrentUrl().then(function compareCurrentUrl(url) {
return urlRegex.test(url);
});
});
}
);
}
Run Code Online (Sandbox Code Playgroud)
我正在以这种方式使用这个功能
it('should log', function() {
//element(by.model('user.username')).sendKeys('asd');
//element(by.model('user.password')).sendKeys('asd');
element(by.linkText('Acceder')).click();
waitForUrlToChangeTo("http://localhost:9000/#/solicitudes");
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试实现以下测试场景:
问题是在新浏览器窗口中打开的页面是非角度页面,而我正在执行点击的主页面是角度页面.
这是我的第一次尝试:
it("should show logo", function () {
var logo = scope.page.logo;
expect(logo.isDisplayed()).toEqual(true);
// opens a new page on click
logo.click().then(function () {
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[1]).then(function () {
expect(browser.getCurrentUrl()).toEqual('http://myurl.com/');
});
// switch back to the main window
browser.switchTo().window(handles[0]);
});
});
});
Run Code Online (Sandbox Code Playgroud)
失败的是:
错误:等待量角器与页面同步时出错:"在窗口中找不到角"
这是可以理解的.
我的第二次尝试是使用ignoreSynchronization布尔标志:
browser.ignoreSynchronization = true;
logo.click().then(function () {
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[1]).then(function () {
expect(browser.getCurrentUrl()).toEqual('http://myurl.com/');
});
// switch back to the main window
browser.switchTo().window(handles[0]);
}); …Run Code Online (Sandbox Code Playgroud)