This question already has answers here:
Selenium switch focus to tab, which opened after clicking link

(3个答案)


去年关闭。





我知道方法getWindowHandles()返回无序Set。
有什么最佳实践可以解决这个问题?

当我有两个选项卡时,这没什么大不了的,但是当我打开两个以上的选项卡并使用toArray()[index]在选项卡之间移动时,我遇到了麻烦,因为每次运行测试,索引都不同,即使以相同的步骤打开了新的选项卡。

是否有可能按顺序返回索引(可能基于时间戳打开了新标签页?),以确保我可以移至特定标签页?

最佳答案

getWindowHandles()方法实际上返回一组无序的字符串。

为了更改基于索引的选项卡之间的切换,您可以将字符串集移动到如下所示的List(已排序)并按索引选择:

Set<String> allWindows=driver.getWindowHandles();
List<String> listOfAllWindows=new ArrayList<String>();
listOfAllWindows.addAll(allWindows);
driver.switchTo().window(listOfAllWindows.get(index));
System.out.println(driver.getTitle());

10-05 23:37