2011-04-26 79 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