学习目的:
掌握iframe矿建的定位,因为前端的iframe框架页面元素信息,大多时候都会带有动态ID,无法重复定位。
场景:
1. iframe切换
- 查看iframe
- 切换iframe
- 多个iframe的问题
2.多窗口iframe
- 获取句柄
- 切换句柄
正式步骤:
step1: 如果iframe中含有动态ID的情况规避方法
问题截图
规避代码:
# -*- coding:utf-8 -*- """ 模拟登陆126邮箱 """ from selenium import webdriver import time url = "https://mail.126.com/" driver = webdriver.Chrome() driver.get(url) iframe = driver.find_elements_by_tag_name("iframe")[0] driver.switch_to.frame(iframe) driver.find_element_by_name("email").send_keys("wzm_323") time.sleep(3) driver.quit()
step2: 多层iframe定位
#多层iframe driver.get(url) driver.switch_to.frame(frame1) driver.switch_to.frame(frame2) driver.find_element_by_ driver.switch_to_default_content()
step3: 通过iframe的索引定位
# -*- coding:utf-8 -*- """ 模拟登陆126邮箱 """ from selenium import webdriver import time url = "https://mail.126.com/" driver = webdriver.Chrome() driver.get(url) time.sleep(3) driver.switch_to.frame(0) driver.find_element_by_name("email").send_keys("wzm_323") time.sleep(3) driver.quit()