如何得到新打开的窗口

时间:2022-05-09 23:41:56

import java.io.File;
import java.util.Iterator;
import java.util.Set;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/*
 * 如何得到新打开的窗口
 */
public class PopupWindowTest {

    public static void main(String[] args) {
        WebDriver dr = new ChromeDriver();
        File file = new File("learning/test.html");
        String filePath = "file:///" + file.getAbsolutePath();
        System.out.println(filePath);

        dr.get(filePath);
        dr.findElement(By.id("51")).click();

        // 得到当前窗口句柄
        String currentWindow = dr.getWindowHandle();

        Set<String> handles = dr.getWindowHandles();
        Iterator<String> it = handles.iterator();

        while (it.hasNext()) {
            String tmp = it.next();
            if (currentWindow.equals(tmp))            // currentWindow == tmp  返回 false  字符串值比较用 equals, 字符串 == 比较的是地址
                continue;

            WebDriver window = dr.switchTo().window(tmp);
            System.out.println("title = " + window.getTitle() + " , url = "
                    + window.getCurrentUrl());
        }

        /*
         * while (it.hasNext()) { if (currentWindow == it.next()) continue;
         *
         * WebDriver window = dr.switchTo().window(it.next());
         * System.out.println("title = " + window.getTitle() + " , url = " +
         * window.getCurrentUrl()); }
         */

        dr.quit();
    }

}