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

时间:2018-01-04 00:10:09

标签: node.js selenium webdriver-io

我试图通过单击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'));
    });

2 个答案:

答案 0 :(得分:0)

browser.getTabIds();

应该为您提供webdriver知道的所有窗口句柄的列表。

然后你可以使用

browser.getCurrentTabId();

找出当前关注的窗口(也许这就是你所说的从BrowserStack视频中做的事情?)

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

您可以通过调用

将焦点窗口切换到新打开的窗口

browser.switchTab(windowHandle)

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

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

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

了解更多信息。

答案 1 :(得分:0)

请致电

 browser.navigate().refresh()

致电

之前
 browser.gettitle().