Selenium中使用CSS定位元素及一些处理

python Selenium库的使用 一、什么是Selenium selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。 seleni... 阅读详情

前言

最近项目中使用selenium做web自动化开发,发现用xpath定位只能固定位置的,例如多个卡片相同标签就可以用css来定位并处理。

find_element_by_css_selector()定位元素

方式一 后代或平级关系来选择元素 :

  • 父元素:
    (#)表示通过 id 属性来定位元素
    (.)表示通过 class 属性来定位元素

  • 子元素(后代关系)
    #choose_car option 含空格的,后面的元素不必是前面元素的直接子元素,只要在父元素的里面
    .s_ipt_wr span
    #choose_car>option 含>键的, 后面的元素必须是前面元素的直接子元素
    .s_ipt_wr>span
    ul>ol>li>em 可以是很多级的父子关系

  • 组合型
    #food>span, p 选择id 为food的所有span子元素和所有的p(包括非food的子元素)
    #food>span, #food > p 选择id为food的所有span子元素和所有p子元素
    #food>* 选择id为food的所有子元素
    兄弟节点的选择 (平级关系)
    #food+div 只选择id为food紧跟后面的div
    #food~div 选择id为food后面的div或div们,只需要在id的后面,不需要紧跟

方法二 根据元素的属性及属性值来选择元素 :

  • *[style] 选择所有有stype属性的元素
  • p[spec=len2] 选择spec属性值只等于len2的p元素
  • yp[spec=‘len2 len3’ ] 选择spec属性值只等于len2 len3的p元素 有空的值一定要加引号
  • p[spec*=‘len2’] 选择spec属性值包含len2的p元素
  • p[spec^=‘len2’] 选择spec属性值以len2开头的p元素
  • p[spec&=‘len2’] 选择spec属性值以len2结尾的p元素
  • p[class=special][name=p1] 选择class值等于special,并且name值等于p1的p元素
  • p:nth-child(1) 选择第一个p元素
  • p:nth-last-child(1) 选择倒数第一个p元素(要保证最后一个元素是p)

将页面上class标签属性修改

  • js = document.getElementsByClassName(“level-one”)[0].removeAttribute(“class”); # 删除页面上class为level-one中的class
  • document.getElementsByClassName(“relation-wrapper”)[0].classList.add(“used”); # 将页面上class为relation-wrapper的标签属性加上used,以空格隔开
PostgreSQL隐式类型转换全解析:告别operator does not exist 强类型数据库是现代数据系统的基石,它在带来严谨性的同时,也常常让开发者在类型不匹配报错前束手无策。当一条SQL因bigint与text比较而抛出operator does not exist时,根源往往在于对数据库隐式转换规则的误解。PostgreSQL通过pg_cast系统表将转换划分为隐式、赋值与显式三个级别,并依据操作符解析逻辑决定是否自动提升类型。理解这些机制,不仅能快速定位JOIN、UNION、函数调用等场景下的类型错误,还能帮助开发者合理使用EXPLAIN VERBOSE、pg_typeof等工 阅读详情

相关推荐

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 383

Selenium元素定位的30种方式(史上最全)

Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下。 这里将统一使用百度首页(www.baidu.com)进行示例,f12可以查看具体前端代码。 WebDriver8种基本元素定位方式 find_element_by_id() 采用id属性进行定位。例如在百度页面中输入关键字 Selenium 进行搜索。百度部分关键源码如下: 1 2 3

小韭菜的博客 4294

深入解析JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略

本文深入探讨了JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略,针对雷达阵列和宽带通信系统中的同步精度问题,详细解析了硬件实现细节、参数配置实战经验及系统级优化方法。通过案例分析和技术要点,帮助工程师解决由温度漂移和时钟抖动引起的同步挑战,提升系统性能。

weixin_29267307的博客 137

Selenium之css怎么实现元素定位?

世界上最远的距离大概就是明明看到一个页面元素站在那里,但是我却定位不到!!

weixin_56502375的博客 1114

FPGA SPI驱动ADC避坑指南:以ADC128S022为例,详解时序设计与代码调试

本文以ADC128S022为例,详细解析FPGA通过SPI驱动ADC的时序设计与代码调试中的常见问题。从时钟分频计算、SPI模式选择到状态机实现,提供避坑指南和实战技巧,帮助工程师解决数据采集系统中的时序匹配难题。特别针对FPGA与ADC通信中的微妙差异,给出精确的Verilog代码示例和ModelSim仿真验证方法。

weixin_42522374的博客 458

Python 驱动 CAD 二次开发:从零搭建自动化绘图环境

本文详细介绍了如何利用Python进行CAD二次开发,实现自动化绘图。通过win32com库建立Python与CAD软件的通信,文章从环境搭建、连接CAD、操作文档到核心绘图与批量处理,提供了完整的实战指南。该方法能显著提升机械设计、建筑绘图等领域的重复性工作效率,将创造力从繁琐劳动中解放出来。

weixin_29093169的博客 1230

selenium模糊定位html元素,使用python處理selenium中的css_selector定位元素的模糊匹配問題...

# 匹配id,先指定一個html標簽,然后加上“#”符號,再加上id的屬性值self.driver.find_element_by_css_selector('div#ID').click()# 匹配class,先指定一個html標簽,然后加上“.”符號,再加上class的屬性值self.driver.find_element_by_css_selector('div.CLASS').click(...

weixin_42429893的博客 466

STM32F103C8T6驱动DHT11温湿度传感器程序

本程序基于 STM32F103C8T6 微控制器,通过 GPIO 模拟单总线通信时序实现对 DHT11 温湿度传感器的数据采集,主机采用拉低数据线的方式触发传感器启动,并通过检测高电平持续时间区分逻辑“0”和“1”,依次读取湿度和温度的整数数据及校验位,经过校验后将有效结果存入缓存数组,实现对环境温湿度的周期性测量与处理。

加斯顿工程师的博客 200

使用python处理selenium中的css_selector定位元素的模糊匹配问题

# 匹配id,先指定一个html标签,然后加上“#”符号,再加上id的属性值 self.driver.find_element_by_css_selector('div#ID').click() # 匹配class,先指定一个html标签,然后加上“.”符号,再加上class的属性值 self.driver.find_element_by_css_selector('div.CLASS')....

weixin_34238642的博客 1070

Autosar进阶专栏索引

Autosar进阶专栏索引

赞的博客 3540

跨平台也要跑得像原生一样顺:SAP GUI for Java 的安装、配置、运维与自动化实战

摘要:SAP GUI for Java 作为跨平台客户端解决方案,在 S/4HANA 时代仍发挥关键作用,特别适用于 macOS/Linux 环境下的 ABAP 开发和系统运维。其主要优势包括:平台无关性(支持 Windows/macOS/Linux/UNIX)、与 Windows 版本一致的交互体验、对核心事务码(如 ST22/SM21)的完整支持。版本管理需注意 7.80 已停止支持,建议升级至 8.10。安装支持原生包和通用 JAR 两种方式,推荐团队标准化版本和连接配置(通过 SAP UI Land

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 678

python css selector_使用python处理selenium中的css_selector定位元素的模糊匹配问题

# 匹配id,先指定一个html标签,然后加上“#”符号,再加上id的属性值self.driver.find_element_by_css_selector('div#ID').click()# 匹配class,先指定一个html标签,然后加上“.”符号,再加上class的属性值self.driver.find_element_by_css_selector('div.CLASS').click(...

weixin_39618121的博客 377

060、模型蒸馏:把扩散模型压进单步的魔法

《端侧文生图模型蒸馏实战:从32步到1步的优化之道》摘要:针对边缘设备部署难题,本文分享了扩散模型蒸馏的核心经验。通过重构损失函数(感知损失+对抗训练+KL散度)、优化采样轨迹截取策略和改造学生模型架构,成功将Stable Diffusion压缩至单步推理。关键发现包括:小批量训练更有效、标签平滑保障生成多样性、双模型策略平衡质量与速度。在Cortex-A53芯片上实现300ms内生成,内存占用控制在200MB以下。特别强调工业部署需权衡压缩率与稳定性,建议保留迭代模式开关以适配不同场景需求。

2601_95651806的博客 150

python+selenium 之页面元素定位,当定位元素时发现元素值中间有空格时如何处理...

新人一枚, selenium的常规定位方法: 8种元素定位分别是   1.find_element_by_id() #通过元素id定位   2.find_element_by_name() #通过元素name定位   3.find_element_by_class_name() #通过元素class定位   4.find_element_by_tag_name() #通过标...

W5412526689的博客 2338

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

抓紧收藏,Selenium无法定位元素的几种解决方案

WebDriver只能在一个页面上对元素识别与定位,对于frame/表单内嵌的页面元素无法直接定位。switch_to.frame()默认可以直接取表单的id或name属性。如果没有可用的id和name属性,可以先定位到frame/iframe,再将定位对象传给switch_to.frame(对象)方法。在页面操作过程中有时候点击某个链接会弹出新窗口,这时就需要切换焦点到新窗口上进行操作。切换到新窗口。首先获取当前窗口的,接着打开弹出新窗口,获得当前打开的所有窗口的句柄。

YLF123456789000的博客 1500

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

css元素定位:通过元素的标签或者元素的id、class属性定位

大部分人在使用selenium定位元素时,用的是xpath元素定位方式,因为xpath元素定位方式基本能解决定位的需求。xpath元素定位方式更直观,更好理解一些。css元素定位方式往往被忽略掉了,其实css元素定位方式也有它的价值;相对于xpath元素定位方式来说,css元素定位方式更快,语法更简洁。

m0_65111097的博客 2117

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python下selenium安装和定位元素方式

安装库 pip install selenium 安装webdriver(Mac版本) 链接:https://pan.baidu.com/s/1CxiN1sacomBs4c1twPGIbQ 密码:01wq #验证环境成功 from selenium import webdriver driver = webdriver.Chrome() driver.get('xxxx')#写页面地址 执行报错 原因:chromedriver路径未配置 修改后解决 from selenium impor.

weixin_42037775的博客 190

Selenium元素定位方法

Selenium元素定位方法

qq_37931379的博客 703

selenium+python 自动化——class定位:class属性有空格

转载:https://www.cnblogs.com/yoyoketang/p/7153053.html 目录 一、例子 1.定位带空格的class属性 2.如果直接复制过来用class属性定位是会报错的 二、class属性科普 三、class定位 四、判断元素唯一性 五、class属性不唯一怎么办 六、css定位 七、参考代码 有些class属性中间有空格,如果直接复制过来...

xiaoxiao.yun的博客 6262

使用Selenium对网页元素进行定位的诸种方法!

在本篇,我们介绍了在使用Selenium打开一个页面之后,如何通过id属性、name属性、class属性、Xpath路径、CSS选择器、标签名等方式对元素进行查找和地位。成功定位页面元素是对页面进行复杂操作的一个重要前提,下一篇我们将会介绍在页面中进行各种操作。

1859

手把手教你,Selenium 遇见伪元素该如何处理?

遇见伪元素该如何处理?

2301_77645573的博客 590

Selenium自动化测试之学会元素定位

启动Chrome浏览器,打开“开发者工具”,切换到console标签,通过方法使用CSS语法定位元素。你可以快速的验证CSS是否可以定位到元素,如果可用就复制到Selenium当中,不用每次通过运行Selenium脚本来验证,效率上快上很多。什么?你不懂CSS定位?或者你看不懂我在讲什么。你可能缺一本《Selenium 自动化测试实战 --基于python语言》这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

weixin_71807218的博客 905

Selenium无法定位元素的几种解决方案

首先获取当前窗口的句柄driver.current_window_handle,接着打开弹出新窗口,获得当前打开的所有窗口的句柄driver.window_handles。find_element_by_xpath("//input[@id='kw'and@class='su']/span/input") 首先找到标签为input,id=kw且class=su的元素,接着找到其下标签为span的子元素,继续向下查找找到标签为input的子元素。凡事要趁早,特别是技术行业,一定要提升技术功底。

huace3852的博客 1322
上一篇: Selenium中使用Cookies绕过登录
下一篇: selenium中selenium.webdriver.common.by之By的用法
BelieverH
博客等级 码龄9年 4粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值