我正在尝试自动化一个场景,我单击一个按钮,它会在新选项卡中打开一个pdf文档。测试失败时,将显示json对象而不是pdf文档。
我使用此代码:
element(by.id('MyButton')).click().then(function () {
browser.getAllWindowHandles().then(function (handles) {
newWindowHandle = handles[1]; // this is your new window
browser.switchTo().window(newWindowHandle).then(function () {
var EC = protractor.ExpectedConditions;
// Waits for the element is not present on the dom.
browser.wait(EC.stalenessOf($('#formattedJson')), 5000);
});
});
});
我可以打开新标签,但是当我不知道如何检查内容(pdf或json对象)时。 一些建议将不胜感激。
例如我有错误:
Failed: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined. This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping. See http://git.io/v4gXM for details"
提前致谢。 ; - )
答案 0 :(得分:0)
可能是因为渲染你的pdf的窗口不是一个有角度的页面。您可以使用browser.waitForAngularEnabled(false)
告诉量角器不要等待角度。您应该在致电切换窗口之前执行此操作。只需记住在关闭窗口并切换回主应用程序窗口时将其重新打开。有关详细信息,请查看此documentation。
browser.getAllWindowHandles().then(function (handles) {
newWindowHandle = handles[1]; // this is your new window
browser.waitForAngularEnabled(false); //add this and it should work
browser.switchTo().window(newWindowHandle).then(function () {
var EC = protractor.ExpectedConditions;
// Waits for the element is not present on the dom.
browser.wait(EC.stalenessOf($('#formattedJson')), 5000);
});
}):