测试场景:
用户登录后,XXX系统会自动弹出一个报表页面,供用户查看。查看完成后关闭该页面,进入另一个窗口进行任务处理。
自动化测试要求:
用户登录后,关闭报表页面,直接进入任务处理页面。
解决方案:
1、获取所有窗口,返回一个Set集合
2、获取当前窗口
3、判断窗口的数量是否大于1,如果大于1,则循环所有窗口并切换到对应窗口
获取循环中窗口的标题,如果标题为要关闭的报表页面,则关闭窗口。否则,则记录为当前窗口。
4、循环结束后,切找到任务处理页面
5、前台测试类调用上述方法
onlyCurrentWindow方法代码如下:
chrome_driver = seleUtilChrome.onlyCurrentWindow("任务列表");
public String onlyCurrentWindow(){
String title = null;
Set<String> 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;
}
网友评论