1

我正在尽可能为我的选择器从 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= 选择器方法上做错了什么?

4

3 回答 3

2

简单的错字:#district_switcher#district-switcher.

于 2013-05-01T20:05:25.680 回答
1

我不确定这css=部分,但你写的district_switcher。它曾经是district-switcher。更准确地说是ul[id*=district-switcher]

于 2013-05-01T20:05:16.737 回答
1

CSS等价于//ul[contains(@id,'district-switcher')]

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 的 CSS 选择器,这使它成为浏览 HTMLXML 文档的一种非常健壮的方式。

于 2013-05-01T20:05:35.487 回答