iframe 切进去
- name属性值
driver.switch_to.frame("myframe1") # name 定位 - index 索引
driver.switch_to.frame(0) # index 定位 第一个是0 - element对象
driver.switch_to.frame(ELEMENT) - EC
WebDriverWait(driver, 10, 0.3).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//h1[@id="big"]/following-sibling::iframe[@name="myframe1"]')))
iframe 退出
1.回到最初的主界面 driver.switch_to.default_content()
2.嵌套层级关系时 driver.switch_to.parent_frame()

image.png
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import time, os
path = "iframe.html"
driver = webdriver.Chrome()
driver.maximize_window()
driver.get("file:///"+os.getcwd()+os.sep+path)
time.sleep(1)
# 进入iframe
# driver.switch_to.frame("myframe1") # name 定位
# driver.switch_to.frame(0) # index 定位 第一个是0
# driver.switch_to.frame(driver.find_element(By.XPATH, '//h1[@id="big"]/following-sibling::iframe[@name="myframe1"]')) # element定位
WebDriverWait(driver, 10, 0.3).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//h1[@id="big"]/following-sibling::iframe[@name="myframe1"]')))
driver.find_element(By.CSS_SELECTOR, "input[value='鲁鲁修']").click()
# 再切换到
driver.switch_to.frame("myframe2")
driver.find_element("id","username").send_keys("我是阿登")
# iframe 退出
# 1. 回到主界面
# driver.switch_to.default_content()
# 2. 嵌套的层级关系的时,回到爸爸web界面
# driver.switch_to.parent_frame()
time.sleep(2)
driver.quit()