当前位置: 首页 > news >正文

第三:selenium中iframe和下拉框操作

一.iframe切换

1.当页面中包含iframe时,不能直接操作iframe中的元素,需要先切换进iframe,再进行操作

2.selenium通过driver.switch_to.frame(frame_reference)来切换

二.selenium切换iframe有三种方式

1.通过webelement
1.1.使用webelement进行切换是最灵活的选择,先定位到iframe然后再切换到它
importtime ​ ​fromseleniumimportwebdriver ​# 使用with语句进行上下文管理# 异常时也会关闭游览器驱动withwebdriver.Chrome()asdriver:driver.get('https://www.w3school.com.cn/tiy/t.asp?f=eg_html_form_radio')# 切换iframe# 1.webelement的方式# 先获取到iframeiframe=driver.find_element_by_id('iframeResult')# 再切换到driver.switch_to.frame(iframe)# 找到female单选框female=driver.find_element_by_xpath('//input[@value="female"]')print(female)
2.通过name或id
2.1.iframe一般都会有id或name属性,则可以使用该属性进行切换,如果name或id在页面上不唯一,name将切换到找到的第一个
importtime ​fromseleniumimportwebdriver ​# 使用with语句进行上下文管理# 异常时也会关闭游览器驱动withwebdriver.Chrome()asdriver:driver.get('https://www.w3school.com.cn/tiy/t.asp?f=eg_html_form_radio')​ ​# 2.name/id的方式# 直接通过name/id切换driver.switch_to.frame('iframeResult')​ ​# 找到female单选框female=driver.find_element_by_xpath('//input[@value="female"]')print(female)
3.通过iframe在页面中的索引进行切换(从0开始)
3.1.通过页面iframe的索引进行切换
importtime ​fromseleniumimportwebdriver ​# 使用with语句进行上下文管理# 异常时也会关闭游览器驱动withwebdriver.Chrome()asdriver:driver.get('https://www.w3school.com.cn/tiy/t.asp?f=eg_html_form_radio')# 3.使用索引,索引从0开始# 切换到第二个iframetime.sleep(1)driver.switch_to.frame(1)# 找到female单选框female=driver.find_element_by_xpath('//input[@value="female"]')print(female)
4.离开iframe
4.1.离开iframe,切换到默认window
# 切回到默认内容driver.switch_to.default_content()

三.下拉框切换

1.通过option操作
importtime ​fromseleniumimportwebdriverfromselenium.webdriver.support.uiimportSelect ​# 使用with语句进行上下文管理# 异常时也会关闭游览器驱动withwebdriver.Chrome()asdriver:driver.get('https://www.w3school.com.cn/tiy/t.asp?f=eg_html_elements_select')# 切换iframeiframe=driver.find_element_by_id('iframeResult')driver.switch_to.frame(iframe)# 找到audi选项# 1.通过option直接操作option=driver.find_element_by_xpath('//option[@value="audi"]')option.click()time.sleep(3)
2.通过select类 操作
2.1.select.select_by_index(index):参数index表示的option索引2.2.select.select_by_value(value):参数value表示的是option元属中value的属性值2.3.select.select_by_visible_text(visible_text):参数visible_text表示的是option的文本内容
importtime ​fromseleniumimportwebdriverfromselenium.webdriver.support.uiimportSelect ​# 使用with语句进行上下文管理# 异常时也会关闭游览器驱动withwebdriver.Chrome()asdriver:driver.get('https://www.w3school.com.cn/tiy/t.asp?f=eg_html_elements_select')# 切换iframeiframe=driver.find_element_by_id('iframeResult')driver.switch_to.frame(iframe)# 2.通过select类操作# 找到selectselect=Select(driver.find_element_by_xpath('//select[@name="cars"]'))# 2.1通过索引操作# 选中索引为1的选项,索引从0开始select.select_by_index(1)time.sleep(3)# 2.2通过value操作(选中value等于audi的选项)select.select_by_value('audi')time.sleep(3)# 2.3选中option的文本为volvo的选项select.select_by_visible_text('Volvo')time.sleep(3)
http://www.zskr.cn/news/1508498.html

相关文章:

  • Langflow 高危漏洞 CVE-2026-5027 已遭野外利用:未修补的路径遍历可致远程代码执行
  • 2026年医疗变压器与稳压电源行业深度观察:哪些厂商在技术、服务与案例上更具竞争力? - 优质品牌商家
  • Hackintool终极指南:5步解决黑苹果配置难题的完整教程
  • 免费开源3D建模革命:用Meshroom从照片创建专业级三维模型的终极指南
  • ComfyUI-Impact-Pack V8架构深度解析:模块化设计如何重塑AI图像处理工作流
  • 2026年兰州装饰公司怎么选?本地装修公司、工作室与设计机构深度行业分析 - 优质品牌商家
  • 2026年靠谱的外墙保温/烟台外墙保温/烟台外墙保温隔热值得信赖公司 - 行业平台推荐
  • AI自省机制:让大模型实时感知并熔断幻觉输出
  • GitHub年度回顾工具:用数据叙事重构开发者体验
  • LangChain+Weaviate+Streamlit构建企业级法律问答机器人
  • 微信读书笔记助手WeReader:一键导出高效笔记的完整解决方案
  • 2026年成都废旧物资回收公司怎么选?多维度实测与行业趋势分析 - 优质品牌商家
  • 第四:窗口标签页切换和元素等待
  • p-Tau217 :解锁神经退行性疾病早期诊断的关键钥匙
  • 深度学习图像质量评估终极指南:3步让计算机看懂好照片
  • 2026年知名的上海高级感发型设计/上海发型设计/根据脸型发型设计哪家效果好 - 品牌宣传支持者
  • 2026年口碑好的乌尔禾区烤全羊/克拉玛依乌尔禾区大盘鸡/克拉玛依乌尔禾区新疆菜口碑推荐 - 行业平台推荐
  • ros2-quick-runner插件v0.0.4版本发布
  • 做游戏缺背景音乐?12个优质可商用素材站点整理
  • ComfyUI-WanVideoWrapper:突破性AI视频生成框架的深度技术解析
  • 2026年评价高的乌尔禾区大盘鸡/乌尔禾区新疆菜/克拉玛依乌尔禾区大盘鸡/克拉玛依乌尔禾区新疆菜好吃推荐 - 品牌宣传支持者
  • 采购、生产、质检三类部门,制造业Agent选型标准为什么完全不同?
  • 伪Anosov流与双曲几何中的边界不可压缩曲面研究
  • 如何用Vue Json Pretty组件优雅展示JSON数据:完整指南
  • 终极指南:如何快速解密微信聊天记录实现本地数据备份
  • 从AMD 3D V-Cache到手机摄像头:手把手拆解混合键合(Hybrid Bonding)的四大实战应用
  • 骁龙X2 Elite边缘AI应用开发实战(2): 实时视觉AI应用开发
  • 从医学影像到遥感分析:Matlab灰度变换(反转/对数/伽马)在两大领域的实战应用指南
  • Anthropic双发旗舰:Claude Fable 5与Mythos 5如何重新定义AI安全与能力边界
  • 从图纸到代码:用C#理解AutoCAD的Entity对象模型,像操作数据库一样操作图形