首页
学习
活动
专区
圈层
工具
发布

selenium2java 遇到有三个窗口用例的处理办法

本人在学习selenium2java的时候遇到一个用例,执行完竟然有三个窗口,使用handles的办法教程只写了两个窗口的解决办法,后来我把handles全都输出出来后发现其实相当于三个窗口,再进去第三个窗口的时候,多判断一下就好了,斜面分享一下自己的经验。

代码语言:javascript
复制
 1//登录下载精品资源
 2    public static void downloadResources(WebDriver driver, boolean key) throws InterruptedException, AWTException {
 3        if (key) {
 4            loginWithTeacher(driver);
 5        } else {
 6            loginWithStudent(driver);
 7        }
 8        findElementByTextAndClick(driver, "精品资源");
 9        String homehandle = driver.getWindowHandle();
10        findElementByXpathAndClick(driver, "html/body/div[3]/ul/li[4]/a");
11        Set<String> handles = driver.getWindowHandles();
12        for (String handle : handles) {
13            if (handle.equals(homehandle) == false) {
14                driver.switchTo().window(handle);
15                output("切换到精品资源页面了!");
16                Thread.sleep(2000);
17                findElementByXpathAndClick(driver, "html/body/div[5]/div[2]/div[1]/div[1]/dl/dd/a[4]");
18                findElementByXpathAndClick(driver, "html/body/div[5]/div[2]/div[1]/div[2]/dl/dd/a[3]");
19                findElementByXpathAndClick(driver, "html/body/div[5]/div[2]/div[1]/div[4]/dl/dd/a[3]");
20                Thread.sleep(2000);
21                String news = driver.getWindowHandle();
22                findElementByTextAndClick(driver, "点击下载");
23                Set<String> handlenews = driver.getWindowHandles();
24                for (String newsss : handlenews) {
25                    if (newsss.equals(news) == false && newsss.equals(homehandle) == false) {
26                        driver.switchTo().window(newsss);
27                        output("切换到资源页面了!");
28                        findElementByXpathAndClick(driver, "html/body/div[3]/div[1]/div[2]/table/tbody/tr[3]/td[5]/a");
29                        Thread.sleep(500);
30                        driver.switchTo().alert().accept();
31                        driver.close();
32                    }
33                }
34                for (String newsss : handlenews) {
35                    if (newsss.equals(news)) {
36                        driver.switchTo().window(newsss);
37                        output("回到精品资源页面了!");
38                        driver.close();
39                    }
40                }
41            }
42        }
43        for (String handle : handles) {
44            if (handle.equals(homehandle)) {
45                driver.switchTo().window(handle);
46                output("回到首页了!");
47                Thread.sleep(2000);
48                driver.quit();
49            }
50        }
51    }
下一篇
举报
领券