Selenium自动化测试——Frame框架定位

Frame是HTML框架结构常用的一种布局格式,共有三种形式:framesetframeiframe

1、Frameset:将HTML页面分割,可以嵌入多个HTML源码文件,实现单个页面显示不同HTML页面效果,不能嵌入在BODY标签中。

2、Frame:在Frameset下面设置Frame,实现某个框架页面,必须嵌套在Frameset中,无法单独存在。

3、Iframe:在某个页面嵌入一个HMTL窗口信息,可脱离Frameset应用,框架属性有自己定义。

Frameset在分割页面后,可以由Frame和iframe嵌入页面信息,Frame仅能在Frameset中应用,Iframe则无此限制。

Frameset与HTML其他标签相同,不影响正常的元素定位,但frame及iframe则不同,在定位元素过程中,需先定位frame及iframe。

01 单层frame

单层frame在定位时,需先切换到对应的frame中,利用switch_to.frame(reference)语法进行切换。Reference为需切换的frame的id、name或index等。

如以下frame框架代码:

则切换frame代码如下:

如果frame没有id或name,则可以索引值,也可以利用先查找webelement对象再切换frame的方法进行,查找web element可利用find element方式。

02 嵌套frame

当某个frame中嵌套了其他的frame时,切换frame则需以嵌套结构逐层切换,例如:

上述的html中frame1中嵌套了frame2,如果需要定位frame2中的元素,则切换frame应当逐层切换,如:

当切换到frame2进行操作后,如果需返回到frame1,则可利用以下方法:

返回上一层frame中,类似于回退效果,当上一层是主文档时,该方法无效。

03 回退主frame

切到某个具体的frame中之后,Selenium不能定位主文档中的元素,如果想定位主文档的元素,则需切回主文档。可利用以下方法:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值