在selenium中使用css选择器进行元素定位(二)
上一篇 /
下一篇 2013-01-25 16:53:23
/ 个人分类:selenium
css中的结构性定位
结构性定位就是根据元素的父子、同级中位置来定位,css3标准中有定义一些结构性定位伪类如nth-of-type,nth-child,但是使用起来语法很不好理解,这里就不做介绍了。
Selenium中则是采用了来自Sizzle的css3定位扩展,它的语法更加灵活易懂
Sizzle Css3的结构性定位语法
E:nth(n) E:eq(n) | 在其父元素中的E子元素集合中排在第n+1个的E元素 (第一个n=0) |
E:first | 在其父元素中的E子元素集合中排在第1个的E元素 |
E:last | 在其父元素中的E子元素集合中排在最后1个的E元素 |
E:even | 在其父元素中的E子元素集合中排在偶数位的E元素 (0,2,4…) |
E:odd | 在其父元素中的E子元素集合中排在奇数的E元素 (1,3,5…) |
E:lt(n) | 在其父元素中的E子元素集合中排在n位之前的E元素 (n=2,则匹配0,1) |
E:gt(n) | 在其父元素中的E子元素集合中排在n位之后的E元素 (n=2,在匹配3,4) |
E:only-child | 父元素的唯一一个子元素且标签为E |
E:empty | 不包含任何子元素的E元素,注意,文本节点也被看作子元素 |
匹配示例:
例如还是段的代码
<div class="subdiv">
<ul id="recordlist">
<p>Heading</p>
<li>Cat</li>
<li>Dog</li>
<li>Car</li>
<li>Goat</li>
</ul>
</div>
locator | 匹配 |
css=ul > li:nth(0) | <li>Cat</li> |
css=ul > *:nth(0) css=ul > :nth(0) | <p>Heading</p> |
css=ul > li:first | <li>Cat</li> |
css=ul > :first | <p>Heading</p> |
css=ul > *:last css=ul > li:last | <li>Goat</li> |
css=ul > li:even | Cat, Car |
css=ul > li:odd | Dog, Goat |
css=ul > :even | <p>Heading</p> |
css=ul > p:odd | [error] not found |
css=ul > li:lt(2) | <li>Cat</li> |
css=ul > li:gt(2) | <li>Goat</li> |
css=ul > li:only-child css=ul > :only-child css=ul > *:only-child | [error] not found (ul没有only-child) |
css=div.subdiv > :only-child | <ul id="recordlist"> … … … … </ul> |
收藏
举报
TAG:
CSS
css
Selenium
selenium