web自动化之iframe切换

一、iframe切换方式

1、通过iframe的name属性
   前提是iframe有name属性
   driver.switch_to.frame("login_frame")
2、通过元素定位
    iframe = driver.find_element(By.ID, "login_frame")
    driver.switch_to.frame(iframe)
    driver.find_element(driver.find_element(By.ID, "login_frame"))
3、索引获取
    iframes = driver.find_elements_by_tag_name("iframe")
    driver.switch_to.frame(1)
    driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[1])

其他:
1、切换到父级的iframe :driver.switch_to.parent_frame()
2、切换到最顶层的iframe:driver.switch_to.default_content()

二、代码实现

访问QQ邮箱为例:
在这里插入图片描述

from selenium import webdriver
import logging
import time
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

logging.basicConfig(level=logging.DEBUG)
# 启动浏览器驱动服务器
driver = webdriver.Chrome()
driver.get("https://mail.qq.com/")
driver.maximize_window()

# 切iframe,通过name属性切换
driver.switch_to.frame("login_frame")


# 定位到账号输入框
locator2 = (By.XPATH, '//input[@id="u"]')
ele2 = WebDriverWait(driver=driver, timeout=10, poll_frequency=1).until(
    EC.visibility_of_element_located(locator=locator2))
ele2.send_keys("1811454825@qq.com")

time.sleep(5)
driver.quit()

运行效果:
打开QQ邮箱,输入QQ账号

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值