我在一些selenium代码中使用以下内容:
WaitForElement(By.CssSelector("#document-count:contains(<number greater than 0>)"));
指定number greater than 0
是我被困的地方。有没有办法只使用css来检查元素的innertext是否有0以外的东西?
答案 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"])
:
<div id="doc">
<input type="text" value="0" />
<br />
<input type="text" value="1" />
<br />
<input type="text" value="2" />
</div>
#doc input[value="0"]
{
background: red;
}
#doc input:not([value="0"])
{
background: green;
}