我该如何在谷歌浏览器中获取当前活动标签页的索引?

4

我目前有一个使用Selenium Webdriver和Google Chrome的Java应用程序。在许多情况下,用户将在不同的选项卡之间切换。我正在尝试使程序识别用户选择的选项卡,并将驱动程序的焦点切换到该选项卡。目前,代码只在焦点所在的选项卡上运行,无论用户将其切换到哪个选项卡。我了解到,要切换焦点,可以使用

driver.switchTo().window(currentTab);

然而,我无法确定当前选项卡的索引。我想避免使用谷歌浏览器的“标签”扩展程序。我已经找到了一些关于此主题的在线帖子,但似乎没有一个解决方案。任何帮助将不胜感激。

1个回答

1

您可以通过getWindowHandle()获取当前选项卡,然后从getWindowHandles()返回的列表中获取其当前选项卡的索引。尝试使用以下代码:

String currentTab = driver.getWindowHandle();
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
int index = tabs.indexOf(currentTab);

注意:窗口句柄是浏览器标签页中网页的唯一标识符。

所以这将直接获取驱动程序选择的选项卡的句柄,而不是用户选择时获取句柄。我正在尝试在浏览器中直接更改选项卡时获取句柄。 - M. Rogers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接