Selenium教程__使用switch_to.frame处理网页框架切换(13)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

与在新窗口打开一个网页后需要切换窗口才能定位元素一样,在iframe标签中的元素也不能直接定位,需要切换到对应的iframe框架中才能进行元素定位。

完成网页框架切换操作需要用selenium中的两个方法

  • driver.switch_to.frame(frame_reference):切换到网页框架内,frame_reference为框架元素
  • driver.switch_to.default_content():退出网页框架

下面以网易邮箱(https://www.126.com/)演示网页的框架切换

import time
from selenium import webdriver

driver = webdriver.Chrome()
driver.maximize_window()

driver.get("https://www.126.com")
time.sleep(3)

# 直接定位账户输入框
try:
    driver.find_element_by_name("email")
except Exception as e:
    print("无法在框架外定位框架内的元素")

# 定位iframe
fr = driver.find_element_by_tag_name("iframe")

# 切换iframe
driver.switch_to.frame(fr)

# 账户框内输入test
driver.find_element_by_name("email").send_keys("test")
time.sleep(1)

# 定位框架外元素
try:
    driver.find_element_by_xpath('/html/body/div[1]/div[1]/div')
except Exception as e:
    print("无法在框架内定位框架外的元素")

# 切换至iframe框架内,如果要操作框架外的元素需要退出iframe框架
driver.switch_to.default_content()

el = driver.find_element_by_xpath('/html/body/div[1]/div[1]/div')
print(el)

time.sleep(2)
driver.quit()

执行结果


 事必有法,然后有成- 最后祝大家早日达到测试的天花板!



以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以留言【777】直接拿走就好了

csdn最新最全的Selenium教程:定位frame框架中的元素 也方便你下次能够快速查找。如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,测试开发视频教程、学习笔记领取传送门!! 阅读详情

相关推荐

web自动化笔记七:Frame切换、多窗口切换

1、frame操作 frame 浏览器一个页面里内嵌一个页面 ①driver.switch_to_frame(id或者name)#快被淘汰的写法 ②driver.switch_to.frame()#被推荐的写法 driver.swith_to.default_content()#会客厅,回到主页 如果三层frame,第一层:driver.switch_to.frame(id或者name) 第二层:driver.switch_to.frame(id或者name),只能逐级切换frame 第三层如果drive

m0_60225699的博客 3142

【web自动化】 Selenium 如何使用switch_to方法切换窗口iframe切换/多frame切换/弹出对话框alert切换/多窗口切换/获取当前焦点元素¶

Selenium WebDriver 中,switch_to是一个专用模块,专门用来切换上下文iframe弹出对话框(alert)新窗口(window)当前焦点元素(active_element)父级 frame(parent_frame)这在自动化测试中非常常见,比如点击一个链接跳出新窗口、弹出登录框或者遇到 iframe 嵌套页面时,就得靠switch_to才能继续操作。iframe网页中的嵌套框架,相当于子网页,独立于主页面的 DOM。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 431

Selenium与PyPDF2实现自动化批量网页转PDF的进阶方案

网页转PDF是数据归档和报告生成中的常见需求,其核心原理在于将HTML内容渲染并转换为可移植的文档格式。传统方法如浏览器打印或在线工具,在处理批量、动态加载或需登录的复杂场景时存在局限。通过浏览器自动化技术,可以模拟真实用户操作,确保页面完整渲染,再结合PDF处理库进行后加工,能显著提升自动化程度与文档质量。这种技术方案在数据备份、报告自动生成和内容归档等应用场景中具有重要价值。本文聚焦于Selenium与PyPDF2的组合应用,详细阐述了如何利用Selenium处理动态网页和登录认证,并通过PyPDF2实

weixin_34396103的博客 1000

selenium iframe操作switch_to_frame

多级定位:单点策略页面切换 切换进入iframe页面 多层网页嵌套(页面有a,b两个frame,其中b在a内,要定位b的内容则需要先定位到a,再切到b) 1)switch_to_frame()方法,表示把当前定位主题切换frame里,其参数必须是id或name 2 再跳回到主框架页:driver.switch_to.default_content() #跳转主框架页 3 最后再跳回到主框架页:driver.switch_to.default_content() #跳转主框架页 多层网页

yuer011的博客 8692

Frame及窗口切换

了解Html中框架的概念,掌握使用WebDriver 对象的switch_to属性进行框架转换,方便在selenium中定位到框架中的元素进行操作。同时,明确窗口句柄的定义,掌握应用带有窗口句柄参数的switch_to 属性,够实现窗口间的跳转。

键盘敲烂,工资过万,多多实践,丰富经验 5938

Selenium(13):定位frame框架中的元素

switch_to.frame方法可以把当前定位的主题切换frame里,在frame里实际是嵌套了另外一个页面,而webdriver每次只能在一个页面识别,所以需要用switch_to_frame方法去获取frame中嵌套的页面。driver.find_element(By.XPATH,'//body/input[2]').send_keys('java') # 定位iframe内部的元素。# switch_to.frame(参数) 可以填三种值 frame_id frame_name。

奔跑在路上you的博客 736

Python爬虫 - Selenium(8)frame/iframe表单嵌套页面

123456

程序猿杂记 9413

Selenium:多表单(frame/iframe)切换Switch模块)

frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe需要切换进去才能定位到其中的元素 比如下面这个网页,有多个frame,以及嵌套iframe,我们在操作里面元素时,需要切换进去。 登陆后,我们要切换进leftFrame进行操作 代码: # coding = utf-8 from ...

weixin_30752377的博客 257

切换frame

frameset不用切,frame需层层切! 很多人在用selenium定位页面元素的时候会遇到定位不到的问题,明明元素就在那儿,用firebug也可以看到,就是定位不到,这种情况很有可能是frame在搞鬼(原因之一,改天专门说说定位不到元素,可能的一些原因及处理办法)。 frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响...

weixin_30735745的博客 123

网页切换与嵌套

python爬虫中处理网页切换与嵌套问题

2301_80138548的博客 563

Playwright vs Selenium:为AI Agent选择最佳网页自动化工具

网页自动化是软件测试、数据抓取和流程自动化领域的核心技术,它通过模拟用户操作实现与浏览器的程序化交互。其核心原理在于通过驱动协议控制浏览器引擎,执行导航、元素定位、表单填写等操作。这项技术的价值在于能够替代重复性人工劳动,提升效率与准确性,广泛应用于自动化测试、监控报警和RPA场景。在构建需要与网页交互的AI Agent时,工具选型尤为关键。Playwright凭借其基于CDP协议的现代化架构,提供了更快的执行速度和内置的智能等待机制,能显著提升Agent的响应与执行效率。而Selenium作为行业标准,则

weixin_33801856的博客 376

Python Selenium自动化网页操作:从零基础到实战框架搭建

网页自动化操作是软件测试、数据采集和办公自动化领域的核心技术,它通过模拟真实用户行为,实现对浏览器的程序化控制。其原理是利用WebDriver协议与浏览器通信,执行点击、输入、页面跳转等交互。这项技术的核心价值在于提升重复性任务的执行效率与准确性,减少人工操作成本。在应用场景上,广泛覆盖数据抓取、自动化测试、日常办公流程处理等。本文聚焦于Python Selenium这一主流工具,深入讲解其环境搭建、元素定位、等待机制等核心概念,并系统介绍如何构建基于Page Object Model和数据驱动的健壮自动化

weixin_33698823的博客 393

Python+selenium自动化之selenium常用API

前面的几十篇文章介绍了selenium的常用的API的用法,但是这些仅仅是API的一小部分,大家可以去selenium官网获取查看https://python-selenium-zh.readthedocs.io/zh_CN/latest/7.WebDriver%20API/。 下面把比较常用的30个API汇总一下: 1.driver.current_url:用于获得当前页面的URL 2.driver.title:用于获取当前页面的标题 3.driver.page_source:用于获取页面html

软件测试阿沐博客 331

Selenium与Appium自动化测试实战:从原理到企业级框架设计

自动化测试是现代软件工程中保障交付质量与效率的核心实践,其核心原理在于通过脚本模拟用户操作,实现测试过程的自动化执行与验证。在技术实现上,基于WebDriver协议的工具链提供了跨平台、标准化的控制能力,能够有效应对Web与移动端碎片化环境的挑战,显著提升测试覆盖率和回归效率。Selenium作为Web自动化的基石,通过统一的HTTP协议驱动不同浏览器,解决了Web应用多浏览器兼容性测试的难题;而Appium则将这一理念延伸至移动端,通过封装iOS与Android原生测试框架,实现了移动应用自动化测试的“一

weixin_30279315的博客 369

Selenium与Appium自动化测试实战:从环境搭建到框架设计

自动化测试是现代软件工程中保障质量与提升交付效率的核心实践。其原理在于通过脚本模拟用户操作,对软件功能进行重复、可回归的验证,从而将测试人员从高频、机械的手工劳动中解放出来。这项技术的核心价值在于为持续集成与持续交付(CI/CD)管道提供了可靠的质量门禁,是实现敏捷开发和DevOps的关键环节。在Web与移动应用领域,Selenium和Appium是两大基石级工具,分别专注于浏览器和移动端自动化。掌握它们的环境配置、脚本编写及框架设计,是构建稳定、可维护自动化测试体系的基础。本文将从一线工程实践出发,详解如

weixin_30522095的博客 346

python selenium启动常用

from selenium import webdriver import time from selenium.webdriver.common.action_chains import ActionChains import re from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup as b...

AnYeZhiYin 1567

从零搭建Python+Selenium+Pytest自动化测试框架:工程化实践指南

自动化测试是现代软件工程中提升效率、保障质量的核心实践。其原理是通过脚本模拟用户操作,实现测试用例的自动执行与验证,从而替代重复、易错的手工测试。在Web UI自动化领域,Selenium作为行业标准工具,提供了跨浏览器的操控能力;而Python凭借其简洁语法和丰富生态,成为自动化测试的首选语言。结合Pytest这一强大的测试框架,可以构建出结构清晰、易于维护的测试套件。这种技术组合的价值在于,它不仅能够显著提升回归测试的效率,还能通过持续集成(CI)流程,实现代码变更的快速反馈。在实际应用中,一个工程化的

weixin_30323631的博客 517

Python+Selenium自动化入门:从环境搭建到实战案例

浏览器自动化是提升工作效率、实现流程自动化的关键技术,其核心原理是通过程序模拟用户操作,与网页元素进行交互。在众多技术方案中,Selenium凭借其跨浏览器支持和丰富的API脱颖而出,成为自动化测试网页数据采集的行业标准工具。结合Python简洁的语法和强大的生态,Python+Selenium组合大幅降低了自动化开发门槛,其技术价值在于将重复、易错的人工操作转化为可调度、可复用的代码流程。这一技术广泛应用于自动化测试网页爬虫、RPA(机器人流程自动化)及办公自动化等场景。本文以Python+Selen

weixin_34375251的博客 461
上一篇: Selenium教程__使用switch_to.window方法处理窗口切换(12)
下一篇: Selenium教程__单选框和复选框的选中状态判定以及元素是否可用和可见判定(10)
bug捕手
博客等级 码龄4年 888粉丝 417原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值