CSS包含带有NOT限定符的Selector?

时间:2013-11-08 16:42:11

标签: css css3 selenium

我在一些selenium代码中使用以下内容:

WaitForElement(By.CssSelector("#document-count:contains(<number greater than 0>)"));

指定number greater than 0是我被困的地方。有没有办法只使用css来检查元素的innertext是否有0以外的东西?

2 个答案:

答案 0 :(得分:2)

:contains在CSS3中已弃用。由于WebDriver直接与浏览器绑定,因此无法使用该伪类。

  

有没有办法只使用css来检查元素的innertext是否有0以外的东西?

不幸的是没有。 CSS真的搞砸了Selenium用户,他们弃用了:contains:nth

正如Arran所说,你可以使用xpath,或者 - 如果你愿意一起试验C#和CSS (不仅仅是你说的css)那么你可以想出一些东西来循环x检查文本的次数。

答案 1 :(得分:2)

Per Chris Coyier at CSS Tricks

  

已过时

     

:contains() - 据我所知,这已经一去不复返了。目前   CSS3规范删除了它。我不知道这个故事,如果你让我知道   做。一目了然,它看起来非常有用(能够选择   基于它们包含的文本内容的对象)。可能是因为   问题,或选择器中的内容是不合需要的。我的   首选项是按元素而不是文本进行选择,   像p:contains(img),但唉,没有这样的运气。



也就是说,如果您要设置值属性,则可以使用:not([value="0"])

See jsFiddle demo



HTML

<div id="doc">
    <input type="text" value="0" />
    <br />
    <input type="text" value="1" />
    <br />
    <input type="text" value="2" />
</div>



CSS

#doc input[value="0"]
{
    background: red;
}

#doc input:not([value="0"])
{
    background: green;
}



结果

jsFiddle Result