【问题标题】:Close Window popup using Protractor使用量角器关闭窗口弹出窗口
【发布时间】:2020-02-16 23:17:35
【问题描述】:

this.switchWindowByTitle = async function (title) {
    await browser.getAllWindowHandles().then(function (handles) {
        handles.forEach(function (handle) {
            console.log(handle.toString());
            browser.switchTo.window(handle);
            if (browser.getTitle() == title) {
                return true;
            }
        });
    });

我正在使用 Protractor 与 Chrome 浏览器一起工作,并尝试通过比较标题来关闭窗口弹出窗口。我得到了所有的窗口句柄,但我的代码只检查了列表句柄的第一个值。

谁能帮我解决它? 这是我的问题详细信息。它只是检查第一个值,然后比较标题

失败: 1)比较产品比较产品应该正确显示 信息: 预期“MOBILE”等于“COMPARE PRODUCTS”。 堆: 错误:预期失败 在用户上下文。 (E:\Protractor 工作区\POM_PROTRACTOR\Testcases\TC_04_CompareProducts.spec.js:17:47) 在 C:\Users\tailet\AppData\Roaming\npm\node_modules\protractor\node_modules\jasminewd2\index.js:112:25

【问题讨论】:

  • 如果你说 await browser.switchTo.window(handle); ?这有帮助吗?我的预感是你会在切换完成之前获得标题。
  • @JeremyKahan:谢谢,但是切换后我得到了标题,我的问题是这段代码没有遍历句柄中的所有项目,它只是检查第一个值。
  • 是的,但“之后”可能并不代表您的想法。当您执行 GetTitle 时,switchTo 可能尚未完成。另一种测试我建议的方法是在 switchTo 上执行 .then 并将 getTitle 放入该函数中。
  • 是的,我按照你的建议试过了,还是不行。
  • 是的,我也是,对不起。如果您现在摆脱返回并只记录 browser.getTitle(),您会看到所有标题还是只看到一个?

标签: javascript selenium-webdriver protractor


【解决方案1】:

使用此方法将关闭您的弹出窗口

closeBrowserPopup: () => {
  return new Promise((resolve, reject) => {
    closePopup();
    resolve("done");
  });
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多