经过大量的研究和修修补补,我似乎实际上无法让我的量角器测试除了出现与 Angular 相关的错误之外的任何其他事情,即使我正在使用浏览器来避免检测到 Angular。
测试涉及一个 Angular 应用程序,在其中打开一个下拉菜单,然后单击控制台的链接;控制台在单独的窗口中打开一个非 Angular 管理页面。
因此,根据我发现的许多信息丰富的 SO 帖子,我首先使用了这个......
browser.driver.getAllWindowHandles().then(function(handles) {
browser.driver.switchTo().window(handles[1]).then(function() {
//expect for new window here
});
});
这似乎奏效了,因为我可以repl
很容易地通过窗户。问题是当添加以下任何一个时...
browser.driver.getAllWindowHandles().then(function(handles) {
browser.driver.switchTo().window(handles[1]).then(function() {
expect(browser.getLocationAbsUrl()).toContain('/console/login.jsp');
expect(browser.driver.findElement(By.css('th.login')).getText()).toEqual('Login');
});
});
一个期望检查 URL,另一个检查header
页面上的元素,这是一个表头。当我运行它时,我得到以下信息:
等待量角器与页面同步时出错:“在窗口上找不到角度”
当我决定browser.ignoreSynchronization = true
在函数或 a 中使用 时,无论beforeEach
是否afterEach
将其设置为 false,我都会得到以下信息:
JavascriptError:未定义角度
我似乎无法得到任何“有用的”错误来帮助我调试它,并且尝试它repl
也无济于事,因为我遇到了同样的问题。全面地说,在没有获得第二个窗口的情况下尝试我的 URL 期望会给我根,而另一个会失败。只是做一个或另一个会导致同样的问题。更改为常规语法 ( element(by.css...)
) 不会改变任何事情。