0

我正在用支持 Capybara 的 Ruby 编写脚本。我将不得不从下拉列表框中选择一个值,并且我正在使用“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)

请帮忙。语法有问题吗?

4

1 回答 1

0

您的 HTML 中的class属性是用空格分隔的,但您在 XPath 表达式中已将其设为句点分隔。XPath 对class属性没有特殊的认识,也不使用 CSS 语法。

切换到使用空格来精确匹配值,或者只匹配属性的特定部分

于 2013-05-22T12:49:27.957 回答