什么是iframe框架
如果遇到了iframe框架(即frame标签和iframe标签),是⽆法直接对框架内部的元素进⾏定位的,需要先切换到框架中去,在完成定位,并且操作完成后,需要定位框架外部的元素时,还需要退出⼀下框架。
进入框架的三种方式
1.通过id或name进入
driver.switch_to.frame(“id或name值”)
2.先定位元素,再进入
el = driver.find_element(By.XPATH,“八大元素定位都行”)
driver.switch_to.frame(el)
3.使用索引进入
driver.switch_to.frame(0)
退出iframe框架
driver.switch_to.default_content()
多框架切换
跳回上层的框架(用于iframe框架嵌套)。
driver.switch_to.parent_frame()
# coding = utf-8
# Author:dan.zhang
# Date:2023/11/24 7:17
"""
iframe框架练习
"""
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 5)
driver.get("file:///D:/WebAutoCode/testcase/click in iframe.html")
driver.maximize_window()
"""进入iframe"""
# 通过id或name进入
# driver.switch_to.frame("ifr")
# 先元素定位,在切换进去
# el = driver.find_element(By.XPATH,'//iframe[@id="ifr"]')
# driver.switch_to.frame(el)
# 使用索引进入
driver.switch_to.frame(0)
"""对iframe里面内容进行操作"""
driver.find_element(By.LINK_TEXT,"Click me").click()
"""退出iframe"""
driver.switch_to.default_content()
time.sleep(2)
driver.quit()
3+2
driver.switch_to.frame(“id/name”)
driver.switch_to.frame(el)
driver.switch_to.frame(0)
driver.switch_to.default_content()
driver.switch_to.parent_frame()