本节知识点
- 多层框架或窗口切换样式:WebDrvier.switchto().TargetLocator
-
Interface WebDriver.TargetLocator下所有可切换对象
参考API-Interface WebDriver.TargetLocator
WebDriver driver= new FirefoxDriver();//启动firefox浏览器
driver.manage().window().maximize();
1.切换frame
driver.switchTo().frame(int index); //按照frame的索引号定位frame,从0开始,可以是0,1,2,....
driver.switchTo().frame(String nameOrId); //按照frame的name或Id定位
driver.switchTo().frame(driver.findElement(By.by)); //按照frame的元素定位属性定位
driver.switchTo().defaultContent();//切换到打开页面是焦点默认frame
2.切换窗口
driver.driver.switchTo().window(String nameOrHandle);//按照window的name或Handle定位,若已知name直接输入即可。若无name可依据页面title调用以下方法切换窗口
/** * 根据页面title切换页面 * @param windowTitle * @boolean 切换到预期页面则返回True,否则返回False */ public static boolean switchtoWin(String windowTitle){ if(driver.getTitle().equals(windowTitle)){ return true;//如果是当前页面,直接返回 }else{ for(String handle : driver.getWindowHandles()) { driver.switchTo().window(handle); if(driver.getTitle().equals(windowTitle)){ return true; }else{ continue; } } } return false; }
3.切换到弹出窗口
driver.switchTo().alert();//切换到弹出窗口,下一步可随意操作alert对象
4.切换到当前frame默认焦点元素
driver.switchTo().activeElement()