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/CSDN/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操作页面等等

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

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Web自动化测试切换iframe(内嵌框架)时,您可以使用Selenium提供的`switch_to.frame()`方法。以下是一个示例代码: ```python from selenium import webdriver # 启动浏览器 driver = webdriver.Chrome() try: # 打开网页 driver.get("https://example.com") # 切换iframe iframe = driver.find_element_by_css_selector("iframe[name='iframe_name']") driver.switch_to.frame(iframe) # 在iframe执行操作 # ... # 切换回主页面 driver.switch_to.default_content() # 在主页面执行其他操作 # ... finally: # 关闭浏览器 driver.quit() ``` 在这个示例代码,我们首先启动了Chrome浏览器。 然后,使用`driver.get()`方法打开了一个网页(示例的URL为https://example.com)。 接下来,使用`driver.find_element_by_css_selector()`方法找到要切换iframe元素。在示例,我们使用了CSS选择器来定位iframe,您可以根据实际情况使用其他定位方式。 然后,使用`driver.switch_to.frame()`方法切换到该iframe。我们将找到的iframe元素作为参数传递给`switch_to.frame()`方法。 在切换iframe后,您可以在其执行需要的操作。 完成在iframe的操作后,使用`driver.switch_to.default_content()`方法切换回主页面。 最后,在`finally`块,我们使用`driver.quit()`关闭浏览器。 请注意,示例使用的是Chrome浏览器和CSS选择器,您可以根据实际情况使用其他浏览器和定位方式。您还可以根据具体需求进行操作的扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值