自动化测试(IDEA+Java+Selenium+testng)(iframe)

iFrame的处理

Frame或iFrame,iframe中又是一个完整的html代码,为一个页面中嵌套另一个页面

思路:
1. 定位iFrame
2. driver控制权交给iFrame
3. 操作iFrame里面的元素
4. driver控制权交回原页面
代码例子:
三种定位iframe方法

    public void iframeTest() throws InterruptedException {
        //iframe窗口的跳转
        driver.get("file:///D:/testing/webdriver_demo/selenium_html/index.html");
        driver.findElement(By.id("user")).sendKeys("this is iframe");
        Thread.sleep(3000);
        //把控制权转交给iframe界面,,id或者属性值为aa的iframe窗口,下面一个方法是没有Id和属性值的情况
        driver.switchTo().frame("aa");
        //点击iframe窗口的Linktext为baidu的按钮
        driver.findElement(By.linkText("baidu")).click();
        //把控制权回到顶部页面
        driver.switchTo().defaultContent();
        Thread.sleep(3000);
        driver.findElement(By.id("user")).clear();
        driver.findElement(By.id("user")).sendKeys("this is another iframe");
    }

    public void iframeTest1() throws InterruptedException {
        //iframe窗口的跳转,运行整个方法时,由于是testng来执行的脚本,是根据方法名的ASKI值来先后执行的,所以是先运行iframetest
        driver.get("file:///D:/testing/webdriver_demo/selenium_html/index.html");
        driver.findElement(By.id("user")).sendKeys("this is iframe");
        //把控制权转交给iframe界面,如果没有id和属性值,把整个iframe当作一个元素来定位
        WebElement element = driver.findElement(By.xpath("/html/body/div/table/tbody/tr[15]/td[2]/iframe"));
        driver.switchTo().frame(element);
        //点击iframe窗口的Linktext为baidu的按钮
        driver.findElement(By.linkText("baidu")).click();
        //把控制权回到顶部页面,任何界面回到顶部页面都是defaultContent方法,回到另一个页面都是frame方法,只能一级一级的跳
        driver.switchTo().defaultContent();
        Thread.sleep(3000);
        driver.findElement(By.id("user")).clear();
        driver.findElement(By.id("user")).sendKeys("this is another iframe");

    }

在这里插入图片描述

如果有多层iFrame,控制权则层层转交

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值