在我们的应用程序中,当我们单击按钮时,它正在新的浏览器选项卡中打开PDF文件。我试图验证URL是否正确打开,所以我按照给出的here的答案编写了代码:
G.View_Doc_Button.click();
browser.sleep(2000);
browser.getAllWindowHandles().then(function (handles) {
console.log(handles);
let newWindowHandle = handles[1];
browser.driver.switchTo().window(newWindowHandle).then(function() {
browser.getCurrentUrl().then(function(Tab){
expect(Tab).toBe('localhost:10001/assets/Doc.pdf');
});
browser.close();
browser.driver.switchTo().window(handles[0]);
});
// browser.driver.switchTo().window(handles[1]);
// browser.driver.close();
// browser.driver.switchTo().window(handles[0]);
});
代码在这些行上失败:
browser.getCurrentUrl().then(function(Tab){
expect(Tab).toBe('localhost:10001/assets/Doc.pdf');
});
由于选项卡打开了PDF文档,因此很可能导致失败。错误是
” AfterAll失败:等待量角器与 页面:“ angularJS可测试性和角度可测试性都 未定义。这可能是因为这是一个非角度页面,或者 由于您的测试涉及客户端导航,因此可以 干扰量角器的引导。参见https://github.com/angular/protractor/issues/2643 有关详细信息”“
请注意,如果我删除了URL验证部分,则代码可以正常工作。但这超出了我的目的。
如何解决?