为什么我要获取之前的标签页面?

问题描述 投票:1回答:2

我试图通过单击id为'wrpr_1431108056877h'的元素来获取打开的窗口的URL。将打开新窗口,但getTitle()仍会返回原始选项卡的标题。在Browserstack提供的视频中,我能够验证当前选项卡确实是我尝试访问的选项卡。

browser
    .click('#wrpr_1431108056877h')
    .pause(5000)
    .getTitle()
    .then((url: any) => {
        console.log(url);
    })
    .end()
    .catch((err: any) => {
      console.log(err.message);
      done(Error('Could not move'));
    });
node.js selenium webdriver-io
2个回答
0
投票

browser.getTabIds();

应该给你一个webdriver知道的所有窗口句柄的列表。

然后你可以使用

browser.getCurrentTabId();

找出当前焦点在哪个窗口(也许这就是你说的从BrowserStack视频中做到的?)

我的猜测是新打开的窗口不是当前关注的窗口。因此,执行的任何命令(如getTitle())都将在前一个窗口中发生。

您可以通过调用将焦点窗口切换到新打开的窗口

browser.switchTab(windowHandle)

然后你可以调用getTitle(),它应该返回正确的标题。

请在此处查看Window上的Web驱动程序文档:http://webdriver.io/api/window/getTabIds.html

(向左滚动所有向下以查看完整的窗口部分)

了解更多信息。


0
投票

请打电话

 browser.navigate().refresh()

在打电话之前

 browser.gettitle().
© www.soinside.com 2019 - 2024. All rights reserved.