适用场景
- 遇到 frame 或者 iframe 表单嵌套应用,无法直接定位嵌套页面的元素
常用方法:
- 切换到表单页面:switch_to.frame()
- 从表单页面返回最外层页面:switch_to.default_content()
操作步骤
1.定位到表单页面,并赋值给一个变量
2.切换到该表单页面
3.对表单页面进行操作
4.返回最外层页面
实现代码
"""
QQ空间从默认的扫码登录切换成密码登录
https://qzone.qq.com/
"""
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
url = "https://qzone.qq.com/"
driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
# 定位到表单页面,并赋值给一个变量
login_frame = driver.find_element(By.ID,"login_frame")
#切换到iframe
driver.switch_to.frame(login_frame)
# 对表单页面进行操作
driver.find_element(By.ID,"switcher_plogin").click()
driver.find_element(By.ID,"u").send_keys("123")
driver.find_element(By.ID,"p").send_keys("456")
time.sleep(5)
driver.quit()