当前位置: 首页 > 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.jsqmd.com/news/996731/

相关文章:

  • 憨大叔旅游社选购注意什么 - 工业推荐榜
  • FastAPI构建ML-Ready API:特征校验与模型版本管理实战
  • Langflow 高危漏洞 CVE-2026-5027 已遭野外利用:未修补的路径遍历可致远程代码执行
  • 避开各类安装坑!OpenClaw 双系统稳定部署实战
  • 2026年医疗变压器与稳压电源行业深度观察:哪些厂商在技术、服务与案例上更具竞争力? - 优质品牌商家
  • 2026年6月国内比较好的线上获客品牌推荐,门窗线上获客/门窗定制抖音投流获客,线上获客品牌哪家权威 - 品牌推荐师
  • Adobe-GenP 3.0:5分钟解锁Adobe全系列软件完整功能
  • Hackintool终极指南:5步解决黑苹果配置难题的完整教程
  • 典型的TFTP+NFS网络启动架构
  • 2026年靠谱的苏州净化工程公司/恒温恒湿净化工程/苏州化妆品无尘室净化工程口碑好的厂家推荐 - 行业平台推荐
  • 憨大叔旅游社性价比高吗? - myqiye
  • ComfyUI-Impact-Pack V8架构深度解析:模块化设计如何重塑AI图像处理工作流
  • 别只看机械键盘!聊聊罗技MX Keys的‘薄膜美学’:静音、轻薄与剪刀脚结构的独特魅力
  • 免费开源3D建模革命:用Meshroom从照片创建专业级三维模型的终极指南
  • Python 高手编程系列三千三百九十七:使用概率型数据结构
  • 2026年汽车清洗液市场口碑观察:哪些品牌与产品值得关注? - 优质品牌商家
  • 2026年腾讯邮箱服务公司,哪个口碑好 - myqiye
  • 2026年兰州装饰公司怎么选?本地装修公司、工作室与设计机构深度行业分析 - 优质品牌商家
  • 2026年靠谱的外墙保温/烟台外墙保温/烟台外墙保温隔热值得信赖公司 - 行业平台推荐
  • VRCX终极指南:VRChat社交管理的免费神器,轻松提升虚拟社交体验
  • 临床工作流嵌入式AI:大模型在癌症诊疗中的安全落地实践
  • 命令注入新思路:当Ping测试遇到黑名单,如何用BurpSuite配合%0a和nc优雅拿Shell?
  • Windows下Java调ZeroMQ的PUB/SUB通信演示工程(含DLL和可直接运行代码)
  • 如何安装Switch大气层系统:5个简单步骤打造完美自制系统环境
  • AI自省机制:让大模型实时感知并熔断幻觉输出
  • 机器学习系统性落地:从业务语义到工程部署的实战地图
  • Open UI5 源代码解析之1473:FilterableListContent.js
  • 从‘感觉’到‘精确’:OpticStudio里单模光纤耦合仿真的三种武器(近轴/单模/POP)深度对比
  • 机器学习入门书单:按认知断层点匹配的七段式学习路径
  • 大连欧式宫廷风婚礼场地靠谱推荐 - myqiye