Ruby:从下拉列表框中进行选择

时间:2013-05-22 11:41:34

标签: ruby xpath capybara

我在Ruby中编写支持Capybara的脚本。我将不得不从下拉列表框中选择一个值,我使用“xpath”来查找元素并进行选择。

代码如下:

<select class="sortOrder fsm textCatalogTitleBlack" style="width: 150px;">
                                    <option value="/all-products/?sort=popularity&dir=desc"> Sản phẩm ưa chuộng </option>
                                    <option value="/all-products/?sort=name&dir=asc"> Tên </option>
                                    <option selected="selected" value="/all-products/?sort=price&dir=asc"> Giá  </option>
                                    <option value="/all-products/?sort=brand&dir=asc"> Thương hiệu </option>
                                    <option value="/all-products/?sort=latest arrival&dir=desc"> Mới nhất </option>
                                    <option value="/all-products/?sort=discount&dir=desc"> Giảm giá </option>
                            </select>

我需要从上面的列表框中选择“Giá”。

我已将代码编写为

 find(:xpath, "//select[@class='sortOrder.fsm.textCatalogTitleBlack']/option[@text=' Giá  ']").click

结果:

Unable to find xpath "//select[@class='sortOrder.fsm.textCatalogTitleBlack']/option[@text=' Giá  ']" (Capybara::ElementNotFound)

请帮忙。语法有问题吗?

1 个答案:

答案 0 :(得分:0)

HTML中的class属性是以空格分隔的,但您已在XPath表达式中对其进行了句点分隔。 XPath没有class属性的特殊意识,也没有使用CSS语法。

切换到使用空格来准确匹配值,或者match only a particular part of the attribute