chrome无头浏览器中的PDF URL验证失败-量角器打字稿f \ w

时间:2019-04-03 16:06:35

标签: typescript automation protractor google-chrome-headless

我正在尝试自动验证在新选项卡中打开的pdf url是否与预期的(url)一致。这是一个有角度的应用程序,我们使用量角器型脚本框架。

遵循的步骤如下:
1.单击pdf链接
2.Pdf在同一浏览器窗口中的新标签页中打开
3.获取所有窗口句柄
4.检查窗口是否处理计数> 1
5.使用最后一个窗口句柄切换到新标签页
6.获取当前的浏览器网址
7.检查是否为预期的网址

这是一个有角度的应用程序,pdf是非角度的

public async waitForWindowHandle() {

    browser.driver.wait(function () {
        return browser.getAllWindowHandles().then(function (handles) {
            if (handles.length > 1) {
                return true;
            }
        });
    }, 20000, 'Waited for window count to be greater than 1');
}


await browser.sleep(1000);
browser.ignoreSynchronization = true
wrapmeth.waitForWindowHandle();
browser.getAllWindowHandles().then(async function (handles) {
    expect(2, "pdf did not open in new Tab").to.equal(handles.length);
    browser.switchTo().window(handles[1]).then(async function () {
        currentUrl = await browser.getCurrentUrl();
    });
});

自动化在chrome浏览器中工作正常,但诺言在chrome headless模式下超时。在第4步之后不会继续进行。我们无法从新标签获取pdf网址。任何非pdf网址都可以正常工作。请让我知道以前是否有人遇到过这样的问题并解决了。任何对此的投入将是有帮助的。谢谢您的宝贵时间。

1 个答案:

答案 0 :(得分:0)

  1. 尝试使用它:

    export async function countTabs () { const allTabs = await browser.getAllWindowHandles(); const allTabsLength = allTabs.length; console.log('===my tabs count is --->> ' + await allTabsLength); return allTabsLength; }

  2. 使用await / async来解决承诺