zoukankan      html  css  js  c++  java
  • 【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()

  • 相关阅读:
    IDEA中classpath
    Java之泛型<T> T与T的用法
    反射机制
    vue mitt 解决多次触发问题
    input限制输入
    解决idea启动端口被占用
    前端压缩图片转base64
    对Bootstrap Table 表格进行封装
    vue项目本地运行
    vue项目搭建
  • 原文地址:https://www.cnblogs.com/sylvia-liu/p/4613246.html
Copyright © 2011-2022 走看看