我在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)
请帮忙。语法有问题吗?
答案 0 :(得分:0)
HTML中的class
属性是以空格分隔的,但您已在XPath表达式中对其进行了句点分隔。 XPath没有class
属性的特殊意识,也没有使用CSS语法。
切换到使用空格来准确匹配值,或者match only a particular part of the attribute。