UI自动化测试基础知识
UI自动化测试元素定位
CSS ID选择器查找元素
注意事项
- 如果元素的ID不唯一,或者是动态的
- 或者name以及linkText属性值也不唯一
- 我们就需要考虑用xpath来查找元素了,然后对元素操作执行
- 不管用什么方式查找元素,id,name,xpath,css等等
- 都需要在页面上查找到唯一的元素
- 除非相差查找一批元素放到集合里,然后操作集合
语法格式
- tag[attribute=’value’]----a[id=’js-signin-btn’]
- “#”---->Id---->a#js-signin-btn —简写方式
- “.”---->Class-----> a.snam,span.icon-shopping-card
- span[class=’icon-shopping-card’]
- 追加类方式—.class.class1.class2
CSS选择器-通配符
在css选择器中使用通配符
- “^”—代表以什么文本开始
- “$”—代表以什么文本结尾
- “*”—代表包含什么文本
语法格式
- tag[attribute=’value’]—specialcharacter:通配符
示例
- span[class^=’name’]—class以name开头的span标签
- span[class*=’name’]—class包含name的span标签
- span[class$=’name’]—class以name结尾的span标签
- 以上举例使用的是class属性,其他的属性均适用
CSS选择器-子节点
示例
- li>#js-signin-btn div>.search-input
—>1个匹配的节点–li下class为js-signin-btn标签下的div下class为search-input标签节点 - div>h1 div>label —>1个匹配的节点
- ul>li>.search-input —>1个匹配的节点
XPATH元素定位
语法格式
- **//tag[@attribute=’value’]
- 绝对路径–/,相对路径—//
- “/”—元素是上一级的子节点中的一个,不能跳级
- “//”—下一级任何子节点或者任何嵌套子节点中的一个,可以跳级
- 路径里面不要使用“*”,要写明标签名
- 使用text属性构建有效的Xpath
- //a[text()=’登录’]—文本=登录的a标签【文本必须完全匹配】**
使用contains关键字构建有效的Xpath
语法格式
- //a[contains(text(), ’忘记密码’)]—文本包含忘记密码的a标签
- //a[contains(@class, ’forget’)]—class包含forget的a标签
- //input[contains(@class, ’inp’) and contains(@placeholder,‘手机号’)]—class包含forget和placeholder属性包含手机号的a标签
使用startwith关键字构建有效xpath
语法格式
- Startwith(@attribute, ‘text’)
- //a[startwith(text(), ’忘记密码’)]—文本以忘记密码开始的a标签
- //a[startwith(@class, ’forget’)]—className以 forget开头的a标签
父节点和兄弟节点
父节点语法格式
- xpath-to-some-element//parent::
兄弟节点语法格式
- xpath-to-some-element//preceding-sibling::【找前面的兄弟节点】
- xpath-to-some-element//following-sibling::【找后面的兄弟节点】