一、切换方式
原理:页面会进行一层一层的嵌套,只有切换到嵌套的页面,才可以定位到页面里的标签属性等,一般情况不会超过三层,通常最多一层,可能的话有平行的 。
【web自动化之iframe页面切换】# 1、通过name属性进行定位,前提是iframe有name属性driver.switch_to.frame("login_frame")# 2、通过iframe索引去切换,注意iframe层级关系driver.switch_to.frame(1)# 3、通过元素去定位,先找到要定位的iframe元素,然后再作为参数传入iframe = driver.find_element("xpath","//iframe[@id='login_frame']")driver.switch_to.frame(iframe)# 扩展:# 关于进入iframe页面怎么退回到主页面driver.switch_to.default_content()# 关于进入iframe页面怎么退回到父级的iframedriver.switch_to.parent_frame()
二、代码示例
文章插图
"""举例:已QQ邮箱为例"""import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.get("https://mail.qq.com/")driver.maximize_window()# 1、通过name属性进行定位,前提是iframe有name属性# driver.switch_to.frame("login_frame")# 2、通过iframe索引去切换,注意iframe层级关系# driver.switch_to.frame(1)# 3、通过元素去定位,先找到要定位的iframe元素,然后再作为参数传入【常用】iframe = driver.find_element("xpath","//iframe[@id='login_frame']")driver.switch_to.frame(iframe)# 点击账号密码登录driver.find_element("xpath","//a[text()='帐号密码登录']").click()# 输入账号driver.find_element(By.ID,"u").send_keys("username")# 输入密码driver.find_element(By.ID,"p").send_keys("password")# 点击登录driver.find_element("xpath","//input[@id='login_button']").click()# 强制等待5stime.sleep(5)# 退出浏览器driver.quit()
- web前端知识点归纳笔记:进程与线程
- 跨境电商怎么玩?看Channel Advisor畅路销经验之谈
- 1 程序员之路漫漫兮,吾将上下而求索2008-8-25 12:50阅读
- 【汉译英】在宰杀家禽之前喂一点什么好拔毛
- 天降之物fallingdown 天降之物fallingdown哪一集
- 【SQL之查询】MySQL查询今天、昨天、上周、近30天、去年等的数据的方法
- 个人理解总结 Linux系统编程之进程
- Arduino基础入门之十 红外遥控1位数码管的显示
- Webstorm2018 常用快捷键 和 常见配置
- 超神学院之雄兵连凉冰是谁