2013-05-01 41 views
1

我正在儘可能從xpath切換到css以供我的選擇器使用。爲什麼這個xpath可以工作,但是css選擇沒有找到[找不到定位符]對於UL

這工作了XPath:

//ul[contains(@id,'district-switcher')] 

,但我認爲是等值的CSS:

css=ul#district_switcher 

只是給沒有找到定位。我不使用包含的CSS,因爲我不認爲我應該需要

我使用Firefox硒IDE

HTML:

<ul id="district-switcher" class="nav nav-pills" style="background-color: 
transparent;"><li class="dropdown open"><a class="dropdown-toggle" href="#"> 
Change district 
<b class="caret"></b></a><ul class="dropdown-menu"><li>... 

我在做什麼毛病css =選擇器的方法?

回答

1

我不知道有關css=的一部分,但你寫district_switcher。它曾經是district-switcher。更準確地說,它將是ul[id*=district-switcher]

+0

爲什麼ID *精確匹配? (只是好奇) – 2013-05-01 20:07:05

+0

否則,哼,我在錯字尷尬。謝謝你們...... – 2013-05-01 20:07:51

+0

我認爲你的答案是第一位的。很快就會接受時,我可以(SO時間限制) – 2013-05-01 20:08:10

2

簡單的錯字:#district_switcher#district-switcher不一樣。

+0

+1謝謝你也趕我的排字錯誤:) – 2013-05-01 20:09:04

1

相當於//ul[contains(@id,'district-switcher')] CSS是:

ul#district-switcher 

例如:

require 'nokogiri' 

doc = Nokogiri::HTML(<<EOT) 
<ul id="district-switcher" class="nav nav-pills" style="background-color: 
transparent;"><li class="dropdown open"><a class="dropdown-toggle" href="#"> 
Change district 
<b class="caret"></b></a><ul class="dropdown-menu"><li> 
EOT 

doc.at('ul#district-switcher')['class'] # => "nav nav-pills" 
doc.at('ul#district-switcher a').text # => "\nChange district\n" 

引入nokogiri支持jQuery's CSS selectors,這使得它通過HTML XML文檔導航非常可靠的方法。

+0

+1謝謝你抓我的排字錯誤:) – 2013-05-01 20:08:43

+0

感謝您的CSS選擇器鏈接,我正在搜索這個鏈接,因爲很久以前,並告訴你分享。現在,今天你終於做到了。 :) – 2013-05-01 20:21:07

+0

@Priti,這不是我的責任,告訴你在哪裏找到的東西;對我來說,存在的事情就足夠了。作爲學習者,您的任務是搜索和查找。 jQuery文檔只是衆多描述「CSS選擇器」的文檔之一。如果你搜索了這個字符串,你會找到你想要的很多次。隨後搜索「jquery選擇器」會給你一些特定於jQuery的附加特性。無論哪種方式,你會一直在前進。 – 2013-05-01 21:29:00

相關問題