iframe的切换,iframe动态切换(自用)

1.什么是iframe?和frame的区别?

        我的理解是iframe就是嵌套在html中的html。

        frame是划分整块页面,就像切豆腐,只能横切竖切,不能中间掏一个洞一样的切;

        iframe我的理解就是可以任意定位区域的大小和位置,能中间掏一个洞一样的切豆腐。

2.iframe切换的方式

        (1) 使用name

  driver.switch_to.frame("iframe的name属性")

        (2)使用index索引 (注意是从0开始的,eg.第3个iframe,索引就是2 )

  driver.switch_to.frame(0)   

        (3)使用xpath

driver.switchTo().frame(driver.findElement(By.xpath(该iframe的xPath)));

ps:还有别的方法进行切换,像使用id,或者iframe是动态时可以使用定位div来进行切换,请自行查阅。 

3.iframe的切换关系

        若是想测试的按钮或者输入框啥的不再当前的iframe中就要切换iframe啦,放一个实例。

实例一: 

        点击【用户管理】(用户管理在默认页面中),当前iframe在默认页面中,然后想点击新增,但是新增在iframe中,此时就要先定位到这个iframe,driver要切换到这个iframe,然后就可以点击【新增】了:

        (1)找到【新增】所在的iframe

         (2)切换到这个iframe(它是第二个,所以索引是1),整个页面有三个iframe(代码太长不方便截图,只看上面一小部分就行啦)

driver.switchTo().frame(1); //法一:使用索引
driver.switchTo().frame("iframe2"); //法二:使用name  (注意当iframe是动态切换时,不能使用name)
driver.switchTo().frame(driver.findElement(By.xpath("/html/body/div/div/div[3]/iframe[2]"))); //法三:使用xPath

实例二: 

         点击完【新增】(此时driver在第二个iframe),进入添加用户界面,此时想要填写【用户名称】:

       (1)先说一下,这里的iframe的关系(由上图可知,三个iframe是并列的,可以画出下图):

                所以以后进行iframe切换,就看路径途径那个iframe,就进行相应的切换就可以啦。 

 (2)第三个iframe是动态的,要动态切换,默认->1->默认->2(此iframe是动态的,即name是变化的,所以不能用name来定位。可以使用索引(注意索引从0开始)或者xpath。)

//先返回默认iframe
driver.switchTo().defaultContent();

//再跳转至第三个iframe      driver.switchTo().frame(driver.findElement(By.xpath("/html/body/div/div/div[3]/iframe[3]")));//xpath
driver.switchTo().frame(2);  //index

4.iframe的动态切换

        实例二中,想要跳转的iframe是动态变化的(name不固定),所以不能使用name来定位iframe,而此时iframe又没有id,可以使用xPath,索引或者定位div 方法:

xPath:

driver.switchTo().frame(driver.findElement(By.xpath("ifranme的xPath")));//xpath

定位div:

driver.switchTo().frame(driver.findElement(By.xpath("div的xPath/iframe[3]")));

ps:此处格式为 driver.switchTo().frame(driver.findElement(By.xpath("div的xPath/iframe[n]")));

        需要填入div的xPath,n:代表div中第几个iframe。

 索引:

driver.switchTo().frame(2);  //index

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值