【selenium专题】元素定位之多层框架和窗口

本节知识点

  • 多层框架或窗口切换样式: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()

posted @ 2015-07-01 14:53  钟灵.毓秀  阅读(1903)  评论(0编辑  收藏  举报