当我阅读driver.getWindowHandles()时,我在某个地方读到“它将按照打开窗口句柄的顺序返回窗口句柄”。
然而,当我实时使用它时,情况并非如此。
public void checkAllWebpages() {
ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
for(int tab = 1; tab<=5; tab++) {
driver.switchTo().window(tabs.get(tab));
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}当我运行上面的代码时,WebDriver循环打开打开的选项卡,但是,它从最后到第一个而不是第一个到最后(从右到左,而不是从左到右)。
假设我现在只打开了一个选项卡,让我们称之为“a”。现在我按'b','c','d','e','f‘的顺序打开5个制表符。
如果我现在运行上述代码,WebDriver将按'f','e','d','c','b','a',而不是'a','b','c','d','e','f‘顺序遍历制表符。为什么会这样呢?
发布于 2021-12-27 06:41:59
“我在某个地方读过书.为什么它在别的地方起作用?”--这是个很糟糕的问题。
返回窗口句柄的顺序在规格说明中定义,该顺序声明:
返回窗口句柄的顺序是任意的。
这意味着没有特别的订单。这取决于一个特定的how驱动程序如何订购句柄。
https://stackoverflow.com/questions/70491775
复制相似问题