标签:
目前针对一些常规定位方式有:By.id、By.name、By.LinkTest(针对<a>标签)、By.ClassName
针对不太好定位的,比如:没有id、name、class的定位方式,或者说id、name、class的value值显示重复,不太方便一下写出定位方式,这样可以考虑下其它定位方式。以下主要介绍cssSelector如何解决id、name、class的value值显示重复的定位方式。
E |
标签选择器,匹配所有使用E标签的元素
|
E F
|
后代元素选择器,匹配所有属于E元素后代的F元素,E和 F之间用空格分隔
|
E > F |
子元素选择器,匹配所有E元素的子元素F
|
E + F |
毗邻元素选择器,匹配紧随E元素之后的同级元素F (只 匹配第一个)
|
E ~ F |
同级元素选择器,匹配所有在E元素之后的同级F元素
|
.info class |
选择器,匹配所有class属性中包含info的元素
|
#footer id |
选择器,匹配所有id属性等于footer的元素
|
E[att=‘val‘] |
属性att的值为val的E元素 (区分大小写) |
E[att^=‘val‘] |
属性att的值以val开头的E元素 (区分大小写)
|
E[att$=‘val‘] |
属性att的值以val结尾的E元素 (区分大小写) |
E[att*=‘val‘] |
属性att的值包含val的E元素 (区分大小写)
|
E[att1=‘v1‘][att2*=‘v2‘] |
属性att1的值为v1,att2的值包含v2 (区分大小写)
|
E:contains(‘xxxx‘) |
内容包含xxxx的E元素(已经废弃的伪类,不再支持) |
:nth-of-type和:nth-child |
以"type"来区分的,也就是说 ele:nth-of-type(n)是指其父元素下第n个ele元素, ele:nth-child(n)是指其父元素下第n个元素且这个元素为ele,若不是,则选择失败。
|
案例图:
例如:
drvier.findElement(By.cssSelector("#operation a span~span")).click();
标签:
原文地址:http://www.cnblogs.com/wxll/p/5970710.html