2013-05-22 2 views
0

Я пишу сценарии в Ruby, который поддерживает Capybara. Мне нужно будет выбрать значение из раскрывающегося списка, и я использую «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> 

мне нужно будет выбрать «Гия» из приведенного выше списка коробки.

Я написал код, как

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

Атрибут class в вашем HTML ограничен пространством, но вы сделали его разделителем с периодом в выражении XPath. XPath не имеет особой осведомленности об атрибутах class и не использует синтаксис CSS для них.

Переключитесь на использование пробелов, чтобы точно соответствовать значению, или match only a particular part of the attribute.

+0

Спасибо за ответ , он работает, когда классы разделены пробелами. – user2409255

Смежные вопросы