Selenium基础:特殊Dom结构操作 07
特殊Dom结构是指对元素不能直接操作,需要进行特殊定位切换到它所在的Dom结构,然后才能对其元素进行操作
1、windows弹窗 --alert confirm prompt
使用driver.switch_to.alert方法
alert类操作方法:
- accept():确定
- dismiss():取消
- text():获取弹出框内的内容
- send_keys(keysToSend):输入字符串
# -*-coding:utf-8-*- from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time driver = webdriver.Chrome() driver.get("") driver.implicitly_wait(2) driver.find_element_by_id('window').find_element_by_tag_name('input').click() time.sleep(1) #等待弹窗出现 WebDriverWait(driver,20).until(EC.alert_is_present()) #切换进alert弹窗 alert = driver.switch_to.alert print(alert.text) alert.accept() time.sleep(3) driver.quit()
2、非windows弹窗
# -*-coding:utf-8-*- from selenium import webdriver import time driver = webdriver.Chrome() driver.get("") driver.implicitly_wait(10) driver.find_element_by_id('noWindow').find_element_by_tag_name('input').click() time.sleep(1) #关闭弹窗 driver.find_element_by_id('header-right').click() time.sleep(3) driver.quit()
3、frame与iframe
frame标签:frameset(不需要特殊处理)、frame、iframe
引导webdriver进入frame中:switch_to.frame(reference)
# -*-coding:utf-8-*- from selenium import webdriver import time driver = webdriver.Chrome() driver.get("") driver.implicitly_wait(10) #切换进iframe结构 driver.switch_to.frame('iframeContainer') time.sleep(1) driver.find_element_by_id('noWindow').find_element_by_tag_name('input').click() time.sleep(3) driver.quit()
- switch_to_default_content():退出frame结构
- switch_to.parent_frame():切换到上层的frame
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个自认为理想主义者的程序员,写了5年公众号、博客的初衷
· .NET 8 gRPC 实现高效100G大文件断点续传工具
· LinqPad:C#代码测试学习一品神器
· .NET入行第4年(第二集)
· 基于 C# 编写的轻量级工控网关和 SCADA 组态软件