硒getWindowHandles()处理?

时间:2019-04-20 00:44:24

标签: java selenium selenium-webdriver selenium-chromedriver

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

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

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

1 个答案:

答案 0 :(得分:0)

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());