2011-10-03 50 views
1
css=table#playlistTable tr:nth(0) span[class='playlistNumDisplay smallFont'] 

我在上面的CSS中收到錯誤。 我想基本上去'PlaulistTable'然後在第一個'tr'下我想選擇跨度[class ='playlistNumDisplay smallFont']下的第一個'tr']針對硒的css查詢

我在這裏做什麼錯? 感謝您的幫助

回答

0

您可能指的是:nth-child(1):nth-of-type(1)而不是簡單的:nth(0)這是無效的CSS。

如果你專門找了第一場比賽,你也可以使用:first-child:first-of-type而非nth-()變種。

怪異模式在這裏有兩個可用的選擇http://www.quirksmode.org/css/contents.html的好名單(通過瀏覽器兼容性圖表一起,雖然我不認爲這將是與你有關的硒查詢的情況下)

希望幫助。

+0

@BoltClock - 你說得對,他們從1開始。我將它調整爲「(1)」而不是「(0)」。 (我的猜測是他將這個從現有的xpath查詢轉換成CSS,原本是零) – Spudley

+0

nth-child(0)怎麼沒有選擇?不應該選擇那種第一個孩子?或者你的意思是計數從1開始,而不是0爲nth-child()? – Sunny

+0

@孫尼:是的,它從1開始。 – BoltClock

0

不要試圖用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的頁面。順便說一句,我們已經很成功地在一個非常大的電子商務網站上使用這個確切的一個。

+0

CSS 2.1中引入了屬性值選擇器。只有屬性值子字符串選擇器在CSS 3中是新的。 – BoltClock