Selenium 自动化测试 & 关闭多余窗口保留当前窗口

测试场景:
用户登录后,XXX系统会自动弹出一个报表页面,供用户查看。查看完成后关闭该页面,进入另一个窗口进行任务处理。

自动化测试要求:
用户登录后,关闭报表页面,直接进入任务处理页面。

解决方案:
1、获取所有窗口,返回一个Set集合
2、获取当前窗口
3、判断窗口的数量是否大于1,如果大于1,则循环所有窗口并切换到对应窗口
获取循环中窗口的标题,如果标题为要关闭的报表页面,则关闭窗口。否则,则记录为当前窗口。
4、循环结束后,切找到任务处理页面
5、前台测试类调用上述方法

onlyCurrentWindow方法代码如下:

chrome_driver = seleUtilChrome.onlyCurrentWindow("任务列表");

 public String onlyCurrentWindow(){
        String title = null;
        Set windows =  this.driver.getWindowHandles();
        String currentHandle = this.driver.getWindowHandle();

        try {
            if (windows.size() > 1) {
                for (String window : windows) {
                    this.driver.switchTo().window(window);
                    this.sleep();
                    title = this.driver.getTitle();
                    if (title.equals("个人绩效看板")) {
                        this.driver.close();
                        SeleniumUtil.log(log,"关闭个人绩效看板");
                    }else{
                        currentHandle = window;
                    }
                }
            }
            driver.switchTo().window(currentHandle);// 切换到任务列表
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  currentHandle;
    }

你可能感兴趣的:(Selenium 自动化测试 & 关闭多余窗口保留当前窗口)