2011-04-26 97 views
1

這並不是說我的CSS選擇器的主人,但一定要知道以下是CSS 3選擇 -硒不支持CSS3選擇器嗎?

css=li:nth-child(1) div[class=team-name] 

雖然下面是CSS 2選擇 -

css=li:first-child div[class=team-name] 

當我使用CSS 2選擇對 -

Selenium.getText("cssSelector") 

我得到正確的文本,但使用CSS 3選擇拋出異常,說明 -

Element css=li:nth-child(1) div[class=team-name] a not found 

如果只是這樣,我可能會使用CSS 2選擇器。但是,我需要通過幾個環節迭代和閱讀的文本,即 -

for(int i=1; i<loopCount; i++) { 
     ArrayList.add(selenium.getText("css=li:nth-child("+i+") div[class=team-name] a")); 
} 

現在怎麼會變成這樣可能的,如果我是使用CSS 2選擇。

+2

你確實不需要在你提出的其他Selenium問題中推薦該提案。 – BoltClock 2011-04-26 18:00:54

回答

1

在selenium中爲CSS3選擇器使用nth-child時,硒以某種方式截斷它之後的sting,所以它僅指。作爲變通方法使用,

Element css=li:nth-child(1) > div[class=team-name] 

'>'使所有區別。

希望這會有所幫助。

+0

使用「>」將它標記爲直接的孩子,而不是我的場景的情況 – Tarun 2011-04-27 07:23:28

+0

我想它表明 - http://saucelabs.com/blog/index.php/2011/01/why-jquery-in-selenium- css-locators-is-the-way-to-go /那個selenium 1.0沒有這個能力 – Tarun 2011-04-27 07:53:50

+0

即使我掙扎了很多,現在我對每種類型的元素使用不同的循環,我想在nth- child()as>僅給予直系後代。我想,Xpath在這種情況下會更合適。 – 9ikhan 2011-04-27 08:13:21