2013-05-22 15 views
0

我正在使用支持Capybara的Ruby編寫腳本。我將不得不從下拉列表框中選擇一個值,然後使用「xpath」查找元素並進行選擇。Ruby:從下拉列表框中進行選擇

的代碼如下:

<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> 

我需要從上面的列表框中選擇「GIA」。

我寫的代碼爲

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

看看薄問題:http://stackoverflow.com/questions/6729786/how-to-select-date-from-a-select-box-using-capybara-in-rails-3 –

回答

0

HTML中的class屬性是空格分隔的,但是您已在XPath表達式中對其進行了句點分隔。 XPath沒有特別的class屬性意識,並且不使用CSS語法。

切換到使用空格完全匹配值,否則match only a particular part of the attribute

+0

感謝您的答案,它在類用空格分隔時起作用。 – user2409255