eclipse 在selenium中一次处理4个窗口

bcs8qyzn  于 2023-10-18  发布在  Eclipse
关注(0)|答案(1)|浏览(120)

我想在多个窗口之间切换并在每个窗口上执行操作。窗口类型如父窗口>>子窗口>>孙子窗口>>孙子窗口。我有一个处理多个窗口的通用代码,但我不知道如何调用该函数。我需要帮助。
你能解释一下我应该如何调用下面的函数,以及firstWindow和secondWindow中的参数是什么吗?
下面是代码。

//To Handle Multiple Windows or Switch Between Multiple Windows.
    public void switchWindow(WebDriver driver, String firstWindow, String secondWindow) 
    {
        Set<String> windowHandles = driver.getWindowHandles();
        for(String windows : windowHandles) 
        {
            if(!windows.equals(firstWindow) && !windows.equals(secondWindow)) 
            {
                driver.switchTo().window(windows);
            }
        }
    }
qij5mzcb

qij5mzcb1#

我想这个方法可以帮助你在窗口之间切换

public void switchToNextTab() {
        ArrayList<String> tab = new ArrayList<>(driver.getWindowHandles());
        driver.switchTo().window(tab.get(1));
    }
    
    public void closeAndSwitchToNextTab() {
        driver.close();
        ArrayList<String> tab = new ArrayList<>(driver.getWindowHandles());
        driver.switchTo().window(tab.get(1));
    }

    public void switchToPreviousTab() {
        ArrayList<String> tab = new ArrayList<>(driver.getWindowHandles());
        driver.switchTo().window(tab.get(0));
    }

    public void closeTabAndReturn() {
        driver.close();
        ArrayList<String> tab = new ArrayList<>(driver.getWindowHandles());
        driver.switchTo().window(tab.get(0));
    }

    public void switchToPreviousTabAndClose() {
        ArrayList<String> tab = new ArrayList<>(driver.getWindowHandles());
        driver.switchTo().window(tab.get(1));
        driver.close();
    }

例如,如果你打开了4个窗口,你需要切换到下一个窗口并执行一些操作,你的代码应该像这样:

//first window    perform actions...
                  switchToNextTab();
//second window   perform actions...
                  closeAndSwitchToNextTab();
//third window    perform actions...
                  closeAndSwitchToNextTab();
//fourth window   perform actions...

相关问题