gpt4 book ai didi

java - 如何在 Selenium 中有效管理浏览器选项卡\窗口?

转载 作者:行者123 更新时间:2023-12-02 00:47:16 25 4
gpt4 key购买 nike

这是我用来学习 Selenium 的书中的代码片段

public class WindowHandlingTest {
WebDriver driver;
@BeforeMethod
public void setup() throws IOException {
System.setProperty("webdriver.chrome.driver",
"./src/test/resources/drivers/chromedriver");
driver = new ChromeDriver();
driver.get("http://guidebook.seleniumacademy.com/Window.html");
}

@Test
public void handleWindow() {
String firstWindow = driver.getWindowHandle();
System.out.println("First Window Handle is: " + firstWindow);
WebElement link = driver.findElement(By.linkText("Google Search"));
link.click();
String secondWindow = driver.getWindowHandle();
System.out.println("Second Window Handle is: " + secondWindow);
System.out.println("Number of Window Handles so for: "
+ driver.getWindowHandles().size());

这段代码的问题是,当打开一个新选项卡时,selenium仍然认为第一个选项卡已打开,这使得结果绝对错误。仅当我创建所有窗口的 ArrayList 并按索引引用特定选项卡/窗口时,代码才会按预期工作。是否还有其他“正确”的方法来管理浏览器选项卡/窗口?书上的代码是不是错了?

最佳答案

getWindowHandle()(单数)将获取当前焦点窗口的句柄。

getWindowHandles() ("s") 将获取所有当前打开的窗口/选项卡的句柄,按照打开的顺序排列。

Only when I create ArrayList of all windows and refer to specific tab/window by index, the code works as intended.

因此,它认为这是正确的做法。

关于java - 如何在 Selenium 中有效管理浏览器选项卡\窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57886866/

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