Selenium自动化(二)
Selenium 自动化二CSS Selector选择器选择单个元素选择所有元素选择所有的tag名为div的元素根据id选择元素根据class选择元素选择后代元素选择子元素最终选择元素3选择后代元素最终选择元素3支持复合写法选择class 值为 date 的 div 元素根据其他属性选择CSS 选择器支持通过任何属性来选择元素语法是用一个方括号 []选择特定范围选择属性值包含某个字符串的元素选择 a 节点里面的 href 属性包含 happy 字符串选择属性值以某个字符串开头的元素选择 属性值 以某个字符串 结尾 的元素组选择如同时选择tag名为div和class为happy的元素按次序选择子节点父元素的第n个子节点nth-child,选择所有位置为第2个的所有元素父元素的倒数第n个子节点nth-last-child选择倒数第2个子元素并且是span元素父元素的第几个某类型的子节点nth-of-type父元素的倒数第几个某类型的子节点nth-last-of-type奇数节点nth-child(odd)和偶数节点nth-child(even)父元素的某类型偶数节点nth-of-type(even)兄弟节点选择 相邻 所有~选择h3后面所有的兄弟节点span窗口切换选择框CSS Selector选择器选择单个元素find_element(By.CSS_SELECTOR,CSS Selector参数)选择所有元素find_elements(By.CSS_SELECTOR,CSS Selector参数)选择所有的tag名为div的元素elementsdriver.find_elements(By.CSS_SELECTOR,div)根据id选择元素elementdriver.find_element(By.CSS_SELECTOR,#id值)根据class选择元素elementsdriver.find_elements(By.CSS_SELECTOR,.class值)选择后代元素选择子元素最终选择元素3元素一元素2元素3选择后代元素最终选择元素3元素1元素2元素3支持复合写法选择class 值为 date 的 div 元素div.date根据其他属性选择CSS 选择器支持通过任何属性来选择元素语法是用一个方括号 []elementdriver.find_element(By.CSS_SELECTOR,[href])选择特定范围选择属性值包含某个字符串的元素选择 a 节点里面的 href 属性包含 happy 字符串a[href*happy]选择属性值以某个字符串开头的元素a[href^http]选择 属性值 以某个字符串 结尾 的元素a[href$cn]组选择如同时选择tag名为div和class为happy的元素div,.happy按次序选择子节点父元素的第n个子节点nth-child,选择所有位置为第2个的所有元素:nth-child(2)父元素的倒数第n个子节点nth-last-child选择倒数第2个子元素并且是span元素span:nth-last-child(2)父元素的第几个某类型的子节点nth-of-type:nth-of-type父元素的倒数第几个某类型的子节点nth-last-of-typespan:nth-last-of-type(2)奇数节点nth-child(odd)和偶数节点nth-child(even)p:nth-child(odd)父元素的某类型偶数节点nth-of-type(even)p:nth-of-type(odd)兄弟节点选择 相邻 所有~h3span选择h3后面所有的兄弟节点spanh3~span窗口切换# 在 HTML 语法中frame 元素或者 iframe 元素的内部会包含一个被嵌入的另一份 HTML 文档。要操作被嵌入的 HTML 文档中的元素就必须切换操作范围到被嵌入的文档中最外层的 HTML 称之为主 HTML。# 使用 WebDriver 对象的 switch_to 属性frame_reference 是 frame 元素的属性 name 或 ID。driver.switch_to.frame(frame_reference)# 切换回原来的主htmldriver.switch_to.default_content()# 切换到新窗口driver.switch_to.window(handle)# WebDriver 对象有 window_handles 属性这是一个列表对象里面包括了当前浏览器里面所有的窗口句柄句柄相当于对应网页窗口的一个 ID。forhandleindriver.window_handles:driver.switch_to.window(handle)ifbingindriver.title:break# 依次获取 wd.window_handles 里面的所有句柄对象并且调用 switch_to.window(handle) 方法切入到每个窗口然后检查里面该窗口对象的属性可以是标题栏地址栏判断是不是我们要操作的那个窗口如果是就跳出循环。# 返回到旧窗口。mainWindowdriver.current_window_handle driver.switch_to.window(mainWindow)选择框fromselenium.webdriver.support.selectimportSelect# radio 框及 checkbox 框都是 input 元素# radio 框radio 框选择选项直接用 WebElement 的 click 方法模拟用户点击# checkbox 框选中 checkbox 的一个选项必须先获取当前该复选框的状态先把已选中的点击下确保是未选状态再点击要选的# :checked 是 CSS 伪类选择表示选择 checked 状态的元素对 radio 和 checkbox 类型的 input 有效elementsdriver.find_elements(By.CSS_SELECTOR,#checkbox input[namedy]:checked)forelementinelements:element.click()driver.find_element(By.CSS_SELECTOR,#checkbox input[valuedy]).click()# select 框是 select 标签Selenium 专门提供了一个 Select 类进行操作实例化时传入 Select 元素对应的 WebElement 对象selectSelect(driver.find_element(By.ID,single))# Select类提供了常用的属性和方法all_selected_options,返回所有当前选中的option元素对应的WebElement对象foreleinselect,all_selected_options:print(ele.text)# select_by_value,根据选项的value属性值选择元素select.select_by_value(dy)# select_by_index根据选项的次序选择元素selenium4以上index从0开始# select_by_visible_text根据选项的可见文本选择元素# deselect_by_value根据选项的value属性值去除选中元素# deselevt_by_index根据选项的次序去除选中元素# deselect_by_visible_text根据选项的可见文本去除选中元素# deselect_all去除选中所有元素参考https://www.w3school.com.cn/cssref/css_selectors.asphttps://www.byhy.net/auto/selenium/frame/

相关新闻

【AI数字员工】Skills 市场与驾驶舱:构建开放共享的能力生态

【AI数字员工】Skills 市场与驾驶舱:构建开放共享的能力生态

🎯 核心观点:Skills市场让数字员工的能力可以「共享」——一个部门开发的优秀Skill,全公司都能用。驾驶舱让管理决策「数据化」——所有数字员工的运行状态、绩效表现、ROI贡献一目了然。员工市场:数字人才市场发现订阅需求闭环一…

2026/9/29 9:50:10 阅读更多 →
从GPU显存爆炸到CPU堆栈溢出,AI项目内存崩坏全路径追踪,7类典型场景+6款开源/商用工具横向评测

从GPU显存爆炸到CPU堆栈溢出,AI项目内存崩坏全路径追踪,7类典型场景+6款开源/商用工具横向评测

更多请点击: https://intelliparadigm.com 第一章:AI编程内存崩坏的底层机理与诊断范式 AI编程中内存崩坏并非偶然异常,而是模型训练、推理与系统资源协同失衡的必然产物。其根源深植于GPU显存管理机制、Tensor生命周期失控、异步计算队列溢…

2026/10/3 12:40:15 阅读更多 →
【多线程】多线程交互+生产者消费者案例

【多线程】多线程交互+生产者消费者案例

【多线程】多线程交互生产者消费者案例(1)wait、notify、notifyAll(2)生产者消费者问题(1)wait、notify、notifyAll wait方法和notify方法,并不是Thread线程上的方法,它们是Object上…

2026/10/2 9:56:42 阅读更多 →

最新新闻

【claude】cli工具安装后,把 settings 改到 TaoToken 的完整配置指南

【claude】cli工具安装后,把 settings 改到 TaoToken 的完整配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:38:10 阅读更多 →
插件系统开发实战:plugin.json配置、TypeScript SDK与CLI加载机制详解

插件系统开发实战:plugin.json配置、TypeScript SDK与CLI加载机制详解

1. 从“plugins”这个词说起:它到底在解决什么问题“plugins”这个词,放在今天的开发语境里,几乎已经成了一个绕不开的基础设施级概念。不管你是用 Cursor 写代码、用 Codex CLI 跑命令、还是在 VS Code 里装扩展,背后都离不开插件…

2026/10/4 15:38:10 阅读更多 →
插件开发实战:从plugin.json到加载失败排查的完整指南

插件开发实战:从plugin.json到加载失败排查的完整指南

1. 从“plugins”这个词说起:它到底在解决什么问题“plugins”这个词,放在今天的开发语境里,几乎已经成了一个绕不开的基础设施级概念。不管你是用 Cursor 写代码、用 Codex CLI 跑命令、还是在 VS Code 里装扩展,背后都离不开插件…

2026/10/4 15:38:10 阅读更多 →
2026年AIGC自检工具怎么选?毕业之家 vs 7款主流平台实测对比(附免费攻略)

2026年AIGC自检工具怎么选?毕业之家 vs 7款主流平台实测对比(附免费攻略)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:38:10 阅读更多 →
插件机制深度解析:从IAR到MusicFree从报错到实战

插件机制深度解析:从IAR到MusicFree从报错到实战

最近在翻搜索记录的时候,发现 plugins 这个词的热度比我想象的高得多。有人一头雾水地问 iar plugins 是干什么的,有人对着 failed to load plugins web boot: 2 entries did not activate 这种报错发呆,还有人刚拿到新设备就急着折腾 musicf…

2026/10/4 15:38:10 阅读更多 →
vscode使用插件KoroFileHeader添加注释,以及解决快捷键冲突详解(fileheader、cursorTip)

vscode使用插件KoroFileHeader添加注释,以及解决快捷键冲突详解(fileheader、cursorTip)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 15:37:10 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →