css=table#playlistTable tr:nth(0) span[class='playlistNumDisplay smallFont']
我在上面的CSS中收到错误。 我想基本上去'PlaulistTable'然后在第一个'tr'下我想选择跨度[class ='playlistNumDisplay smallFont']下的第一个'tr']针对硒的css查询
我在这里做什么错? 感谢您的帮助
css=table#playlistTable tr:nth(0) span[class='playlistNumDisplay smallFont']
我在上面的CSS中收到错误。 我想基本上去'PlaulistTable'然后在第一个'tr'下我想选择跨度[class ='playlistNumDisplay smallFont']下的第一个'tr']针对硒的css查询
我在这里做什么错? 感谢您的帮助
您可能指的是:nth-child(1)
或:nth-of-type(1)
而不是简单的:nth(0)
这是无效的CSS。
如果你专门找了第一场比赛,你也可以使用:first-child
或:first-of-type
而非nth-()
变种。
怪异模式在这里有两个可用的选择http://www.quirksmode.org/css/contents.html的好名单(通过浏览器兼容性图表一起,虽然我不认为这将是与你有关的硒查询的情况下)
希望帮助。
不要试图用Selenium来玩复杂的CSS。你可以尝试一些你以前用过的jQuery,但它不存在于CSS中,或者至少是你试用的浏览器所支持的CSS的当前版本。 'nth'可能就是这方面的例子。
因此,它简化到:
css=table#playlistTable tr:first-child span.playlistNumDisplay.smallFont
你可能会考虑甚至简化更,根据你关心的匹配,并选择部分不与其他元素的重叠。
。
注意即:first-child
是CSS 2.1,而:nth-child()
和属性值选择器(如[class='...']
)是CSS 3,意为比别人更先浏览器的支持。
。
一两件事,以及帮助使用jQuery的定位器,可实现为:
How do I add a JQuery locators to Selenium Remote Control
当然会被限制在支持jQuery的页面。顺便说一句,我们已经很成功地在一个非常大的电子商务网站上使用这个确切的一个。
CSS 2.1中引入了属性值选择器。只有属性值子字符串选择器在CSS 3中是新的。 – BoltClock
@BoltClock - 你说得对,他们从1开始。我将它调整为“(1)”而不是“(0)”。 (我的猜测是他将这个从现有的xpath查询转换成CSS,原本是零) – Spudley
nth-child(0)怎么没有选择?不应该选择那种第一个孩子?或者你的意思是计数从1开始,而不是0为nth-child()? – Sunny
@孙尼:是的,它从1开始。 – BoltClock