我正在努力尽可能为我的选择器从xpath切换到css。
这适用于xpath:
//ul[contains(@id,'district-switcher')]
但我认为在css中是等价的:
css=ul#district_switcher
只是找不到定位器。我没有使用css的包含,因为我认为我不需要
我正在使用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方法做错了什么?
答案 0 :(得分:2)
简单拼写错误:#district_switcher
与#district-switcher
不同。
答案 1 :(得分:1)
我不确定css=
部分,但你写了district_switcher
。它曾经是district-switcher
。更准确地说,它将是ul[id*=district-switcher]
答案 2 :(得分: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 AND XML文档的一种非常强大的方式。