您的位置:首页 > Web前端 > CSS

selenium中使用css选择器进行元素定位

2013-01-07 15:25 267 查看
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>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: