Selenium篇6-WEB自动化中iframe切换

1、什么是iframe

iframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示。

2、怎么知道我要定位的元素在iframe里面

在这里插入图片描述

  • 1、首先在页面elments中查看需要定位的元素层级
  • 2、如果该元素的父级或者祖父级别有iframe标签,那么需要定位的元素就在iframe中

3、切换至iframe

总共有四种常用的方法
1、通过index 索引切入;
2、通过iframe框的name属性切入;
3、通过iframe的Element对象进行切入;
4、通过显示等待的方式进行切入;

from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(30)
driver.get('http://localhost:63342/studyday/优快云/iframe.html?_ijt=4apfiomnqutj5od1ms840ib0e6')

# 方法一:通过索引 index 嵌入,从0开始,从上至下,从左至右
driver.switch_to.frame(0)

# 方法二:通过name属性
driver.switch_to.frame('baidu')

# 方法三:通过iframe整个Element对象
driver.switch_to.frame(driver.find_element_by_xpath('/html/body/iframe'))

# 方法四:通过显示等待的方式切入
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as sc

wait = WebDriverWait(driver,30) # 初始化一个计时器
wait.until(sc.frame_to_be_available_and_switch_to_it('baidu'))

4、切回主页面

在里层的iframe操作完元素后,需要切回主页面或上一级页面进行操作其他的元素,该怎么切回呢?
1、从iframe切回到默认的页面

# 从iframe中切回默认的页面
driver.switch_to.default_content()

2、从iframe中切换至上一级

# 从iframe中退到上一级,parent_frame就是父级
driver.switch_to.parent_frame()

提示:存在多个iframe嵌套时,想在一个iframe当中再切换到下一级,一层一层切进去就可以了,不能够跳层,如果你在这个html页面中还有iframe,那就切换两次。

后续博客将分享窗口切换、alert弹窗切换,以及js操作页面等等

有什么问题,欢迎大家评论区评论交流!谢谢大家!
后续博客会继续分享相关知识!!
如果觉得博主这篇博客对大家有用,麻烦评论区留下自己的‘脚印’ !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值