【问题标题】:selenium getWindowHandles() handling? [duplicate]硒 getWindowHandles() 处理? [复制]
【发布时间】:2019-04-20 00:44:23
【问题描述】:

我知道方法getWindowHandles() 返回无序集。 有没有最佳实践来处理这个问题?

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

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

【问题讨论】:

  • 创建和跟踪您自己的有序集。先把主窗口放在那里。当您打开每个新窗口时,将其添加到集合中。

标签: java selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2017-12-12
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2019-04-27
    • 1970-01-01
    • 2016-09-13
    • 2018-10-11
    • 2020-09-25
    相关资源
    最近更新 更多