我正在尽可能地为我的选择器从xpath切换到css。
这在xpath中有效:
//ul[contains(@id,'district-switcher')]
但是我认为在css中是等价的:
css=ul#district_switcher
只给出定位器未找到。我没有在css中使用contains因为我认为不需要使用
我正在使用firefox selenium 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= selector方法做错了什么?
简单的拼写错误:#district_switcher
和#district-switcher
不一样
我不确定css=
部分,但你写的是district_switcher
。以前是district-switcher
。更准确地说应该是ul[id*=district-switcher]
等价于//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 districtn"
Nokogiri支持jQuery的CSS选择器,这使得它成为在HTML 和 XML文档中导航的一种非常强大的方式。