web自动化之iframe页面切换

一、iframe切换方式

原理:页面会进行一层一层的嵌套,只有切换到嵌套的iframe页面,才可以定位到iframe页面里的标签属性等,一般情况不会超过三层,通常最多一层,可能的话有平行的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页面怎么退回到父级的iframe
driver.switch_to.parent_frame()

二、代码示例

"""
举例:已QQ邮箱为例
"""
import time
from selenium import webdriver
from selenium.webdriver.common.by import By


driver = 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()

# 强制等待5s
time.sleep(5)

# 退出浏览器
driver.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

测试小白00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值