点此获取更多相关资料
本文为霍格沃兹测试开发学社学员学习笔记分享
原文链接:https://ceshiren.com/t/topic/27022
一、CSS选择器概念
CSS拥有自己的语法规则和表达式
CSS通常分为相对定位和绝对定位
CSS常和XPATH一起用于UI自动化测试
二、CSS相对定位使用场景
- 支持web场景
- 支持app端的webview
三、CSS语法实战
3.1、CSS相对定位的优点
- 可维护性强
- 语法简洁
- 可以解决各种复杂的定位场景
# 绝对定位
$("#ember63 > td.main-link.clearfix.topic-list-data > span > span > a")
# 相对定位
$("#ember63 [title='新话题']")
3.2、CSS定位的调试方法
-  进入浏览器的console 
-  输入表达式 - $(“CSS表达式”)
- $$(“CSS表达式”)
 
3.3、CSS基础语法

| 类型 | 表达式 | 示例 | 
|---|---|---|
| 标签 | 标签名 | $(“div”) | 
| 类属性 | .class属性值 | $(“.dialog-container”) | 
| id属性 | #属性值 | $(“#dialog-holder”) | 
| 普通属性 | [属性名=“属性值”] | $(‘aria-hidden=“true”’) | 
3.4、CSS关系定位

| 类型 | 格式 | 示例 | 
|---|---|---|
| 并集 | 元素1,元素2 | $(‘[data-topic-id=“7306”],#ember212’) | 
| 兄弟 | 元素1~元素2 | $(‘.link-top-line~[href=“/t/topic/7306”]’) | 
| 邻近兄弟 | 元素1+元素2 | $(‘.link-bottom-line+[href=“/t/topic/7306”]’) | 
| 父子 | 元素1>元素2 | $(‘#ember211>.topic-list-header’) | 
| 后代 | 元素2 元素2 | $(‘#ember211 [data-topic-id=“7306”]’) | 
3.5、CSS顺序关系

| 类型 | 格式 | 示例 | 
|---|---|---|
| 父子关系+顺序 | 元素 元素 | $(‘.topic-list-body>:nth-child(2)’) | 
| 父子关系+标签类型+顺序 | 元素 元素 | $(‘.topic-list-body>tr:nth-of-type(2)’) | 
- nth-child(n) : 匹配父元素中的第 n 个子元素,元素类型没有限制。
- nth-of-type(n) : 匹配同类型中的第n个同级兄弟元素。
n可以是一个数字,一个关键字,或者一个公式,比如:nth-child(odd) 奇数 ,nth-child(even) 偶数。



















