量角器:在新选项卡中查看pdf文档

时间:2018-05-09 09:49:40

标签: jasmine protractor

我正在尝试自动化一个场景,我单击一个按钮,它会在新选项卡中打开一个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"

提前致谢。 ; - )

1 个答案:

答案 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);
    });
}):