当前位置: 首页 > news >正文

CSS选择器常用语法

1、CSS选择器详解

CSS选择器最初是为了在CSS样式表中选择HTML元素而设计的,但由于其简洁和强大的语法,现在广泛用于自动化测试中的元素定位。

2、基本CSS选择器

选择器类型语法示例描述
标签选择器标签名div选择所有指定标签的元素
ID选择器#ID值#username选择具有指定ID的元素
类选择器.类名.btn-primary选择具有指定类的所有元素
属性选择器[属性名][属性名=值][type="submit"]选择具有指定属性或属性值的元素

3、组合选择器

组合方式语法示例描述
后代选择器A Bdiv p选择A元素内的所有B元素(不限层级)
子元素选择器A > Bdiv > p选择A元素的直接子元素B(仅一层)
相邻兄弟选择器A + Bh2 + p选择紧跟在A元素后的第一个B元素
通用兄弟选择器A ~ Bh2 ~ p选择A元素后的所有同级B元素

4、伪类和伪元素

CSS选择器还包括伪类和伪元素,用于选择特定状态或位置的元素:

/* 伪类示例 */
:first-child       /* 第一个子元素 */
:last-child        /* 最后一个子元素 */
:nth-child(n)      /* 第n个子元素 */
:hover             /* 鼠标悬停状态 */
:checked           /* 选中状态(用于复选框等) *//* 伪元素示例 */
::before           /* 元素前的内容 */
::after            /* 元素后的内容 */

5、高级CSS选择器

选择器示例描述
属性包含[class*="btn"]选择class属性包含"btn"的元素
属性开头[id^="prefix"]选择id以"prefix"开头的元素
属性结尾[href$=".pdf"]选择href以".pdf"结尾的元素
多条件选择器input[type="text"][required]选择同时满足多个条件的元素

6、在Playwright中使用CSS选择器

# 基本CSS选择器
page.locator('button').click()                    # 标签选择器
page.locator('#submit-button').click()            # ID选择器
page.locator('.error-message').text_content()     # 类选择器
page.locator('[data-testid="username"]').fill('test')  # 属性选择器# 组合选择器
page.locator('form > input').first().click()      # 子元素选择器
page.locator('.card h2').text_content()           # 后代选择器
page.locator('label + input').fill('text')        # 相邻兄弟选择器# 伪类选择器
page.locator('li:first-child').click()            # 第一个列表项
page.locator('tr:nth-child(3)').click()           # 第三行
page.locator('input:checked').count()             # 已选中的输入框数量
http://www.dtcms.com/a/308219.html

相关文章:

  • day24作业
  • 《Linux自动化运维三例:磁盘告警、服务守护与网络检测》​
  • Mysql超详细安装配置教程(详细图文,保姆级)
  • 掩码语言模型(MLM)技术解析:理论基础、演进脉络与应用创新
  • 【Prompt集合】一个学习英文单词更好的提示词
  • 从姑苏区人工智能大模型基础设施招标|学习服务器、AI处理器、GPU
  • 数据结构 ArrayList与顺序表
  • 机器学习——互信息(超详细)
  • 【物联网】基于树莓派的物联网开发【19】——树莓派搭建MQTT客户端及MQTTX使用
  • Vision Transformer(ViT)模型实例化PyTorch逐行实现
  • 从 MySQL 迁移到 TiDB:使用 SQL-Replay 工具进行真实线上流量回放测试 SOP
  • SpringBoot3.x入门到精通系列:1.2 开发环境搭建
  • 25-vue-photo-preview的使用及使用过程中的问题解决方案
  • 实战教程 ---- Nginx结合Lua实现WAF拦截并可视化配置教程框架
  • 走进computed,了解computed的前世今生
  • 【云故事探索】NO.16:阿里云弹性计算加速精准学 AI 教育普惠落地
  • 谁在托举Agent?阿里云抢滩Agent Infra新赛道
  • 安装 docker compose v2版 笔记250731
  • 对接八大应用渠道
  • Tomcat,WebLogic等中间件漏洞实战解析
  • 大模型流式长链接场景下 k8s 优雅退出 JAVA
  • 用 MyBatis + MySQL 实现高效的批量 Upsert
  • 关于tresos Studio(EB)的MCAL配置之GtmCfg
  • 性能测试篇 :Jmeter监控服务器性能
  • Golang 语言的编程技巧之类型
  • 基础组件(六):网络缓冲区设计 和 定时器方案
  • TTS语音合成|GPT-SoVITS语音合成服务器部署,实现http访问
  • Vue3+Vite项目如何简单使用tsx
  • nl2sql grpo强化学习训练,加大数据量和轮数后,准确率没提升,反而下降了,如何调整
  • PostgreSQL dblink 与 Spring Boot @Transactional 的事务整合