gpt4 book ai didi

java - 为什么 java webdriver 中的 getWindowHandles() 返回 Set<> 而不是 ArrayList<>?

转载 作者:行者123 更新时间:2023-12-01 19:33:54 25 4
gpt4 key购买 nike

driver.getWindowHandles() 返回 Set所以,如果我们想通过索引选择窗口,我们必须将 Set 包装到 ArrayList 中:

var tabsList = new ArrayList<>(driver.getWindowHandles());
var nextTab = tabsList.get(1);
driver.switchTo().window(nextTab);

在Python中我们可以立即通过索引访问窗口:

next_window = browser.window_handles[1]
driver.switch_to.window(next_window)

这里选择Set的目的是什么?

最佳答案

因为集合不强加顺序,* 这很重要,因为没有保证返回的窗口句柄的顺序。这是因为窗口句柄不仅代表选项卡,还代表其他浏览器窗口中的选项卡。对于跨平台和浏览器的整体顺序没有可靠的定义,因此列表(强加顺序)没有多大意义。

* 从技术上讲,SortedSet 是 Set 的子类型,它确实强制执行顺序,但 Set 的一般契约不需要任何顺序。

关于java - 为什么 java webdriver 中的 getWindowHandles() 返回 Set<> 而不是 ArrayList<>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58523431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com