driver.switch_to.frame()


一般情况下,我们可以直接通过id或者name切换到frame。

driver.switch_to.frame()
小括号里面填iframe标签的id,或name值
如果没有id,或者name,我们可以先定位到iframe标签,再切换到frame
# 根据标签名切换
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)

当然我们也可以通过其他页面元素定位的方式。
页面元素定位的8种方式:
  • find_element_by_id
  • find_element_by_name
  • find_element_by_xpath
  • find_element_by_link_text
  • find_element_by_partial_link_text
  • find_element_by_tag_name
  • find_element_by_class_name
  • find_element_by_css_selector

接下来通过两个具体的实例了解下driver.switch_to.frame()

1、模拟登陆163邮箱

# coding:utf-8

from selenium import webdriver

# 实例化
driver = webdriver.Chrome()
# 发起请求
driver.get("http://mail.163.com/")
# 隐式等待10s
driver.implicitly_wait(10)

# 切换iframe
# 根据标签名切换
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)

# 定位元素并向input标签里输入值
driver.find_element_by_name("email").send_keys("***")   # 输入账号
driver.find_element_by_name("password").send_keys("***")    # 输入密码

# 点击登陆
# driver.find_element_by_id("dologin").click()

# 释放iframe,重新回到主页面
driver.switch_to.default_content()

 2、模拟登陆豆瓣

from selenium import webdriver

# 实例化
driver = webdriver.Chrome()
# 发起请求
driver.get("https://www.douban.com")

# 切换frame
iframe = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(iframe)

# 定位元素
driver.find_element_by_class_name("account-tab-account").click()
driver.find_element_by_id("username").send_keys("***")  # 输入用户名
driver.find_element_by_id("password").send_keys("***")  # 输入密码

# 点击登陆豆瓣
# driver.find_element_by_link_text('登陆豆瓣')
driver.find_element_by_class_name("btn").click()


# driver.quit()

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM