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操作页面等等
有什么问题,欢迎大家评论区评论交流!谢谢大家!
后续博客会继续分享相关知识!!
如果觉得博主这篇博客对大家有用,麻烦评论区留下自己的‘脚印’ !