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/7/22 15:41:58 阅读更多 →
从GPU显存爆炸到CPU堆栈溢出,AI项目内存崩坏全路径追踪,7类典型场景+6款开源/商用工具横向评测

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

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

2026/7/22 15:41:58 阅读更多 →
【多线程】多线程交互+生产者消费者案例

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

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

2026/7/22 15:41:58 阅读更多 →

最新新闻

嵌入式ADC数字比较器与UART协同设计:硬件联动实现高效事件驱动系统

嵌入式ADC数字比较器与UART协同设计:硬件联动实现高效事件驱动系统

1. 项目概述与核心价值在嵌入式系统开发中,ADC(模数转换器)和UART(通用异步收发传输器)是两种基础且关键的外设模块。ADC负责将模拟信号转换为数字量,其数字比较器功能通过设置阈值范围,能够实时…

2026/7/23 18:05:25 阅读更多 →
嵌入式UART开发实战:中断清除与DMA配置的寄存器级详解

嵌入式UART开发实战:中断清除与DMA配置的寄存器级详解

1. 项目概述:从寄存器手册到实战代码的跨越在嵌入式开发的日常里,翻阅几百页的技术参考手册(TRM)是家常便饭。手册里那些密密麻麻的寄存器位域描述,比如“W1C”、“RW”、“RO”,初看之下冷冰冰的&#xff…

2026/7/23 18:05:25 阅读更多 →
深入解析TI Tiva QSSI接口:从SPI基础到高速多线传输实战

深入解析TI Tiva QSSI接口:从SPI基础到高速多线传输实战

1. QSSI接口:从基础SPI到高速多线传输的演进如果你在嵌入式领域摸爬滚打了一段时间,尤其是用过TI的Tiva系列微控制器,那你对SPI(Serial Peripheral Interface)肯定不陌生。这个简单、高效、全双工的四线制同步串行接口…

2026/7/23 18:05:25 阅读更多 →
数据库------>多表连接查询

数据库------>多表连接查询

使用的软件:1.VMware Worksation其中安装Openeuler 2203_server 虚拟机2.Xshll远程登录(1)创建数据库mydb11_stu并使用该数据库(2) 创建student表 mysql> create table student(id int(10) not NULL unique primary key, name varchar(20)…

2026/7/23 18:05:25 阅读更多 →
BOOST

BOOST

工作原理Boost电路是一种非常基础且重要的直流-直流升压变换电路。其核心功能是将输入的直流电压升高,输出一个更高的直流电压,且输出电压与输入电压极性相同。在硬件结构上,BOOST 电路依然使用了熟悉的四大核心元件:电感&#xf…

2026/7/23 18:05:25 阅读更多 →
Tiva ADC采样序列配置详解:从多路复用器到数字比较器的数据流控制

Tiva ADC采样序列配置详解:从多路复用器到数字比较器的数据流控制

1. 项目概述与核心价值 在嵌入式系统开发中,模数转换器(ADC)扮演着将现实世界连续变化的模拟信号(如温度、压力、光照强度)转换为微控制器能够处理的离散数字信号的关键角色。其技术价值直接决定了系统感知外部世界的精…

2026/7/23 18:04:25 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻