огурец: в выпадающем списке должен быть выбран элемент? Как с xpath? Или может что-то еще? - PullRequest
1 голос
/ 21 сентября 2011
<select id="search_user_id_equals_any" name="search[user_id_equals_any]">
    <option value="2">My Stuff</option>
    <option value="-1,1,2,3,4,5">All Users</option>
    <option value="3">The Cat</option>
</select>

Итак, выше раскрывающийся список, в котором я хочу убедиться, что что-то выбрано.

Теперь, когда вы нажимаете на что-то, оно не добавляет selected = "selected" к какому-либо параметруВы нажимаете, поэтому я не знаю, как определить выбор.

идей?

Ответы [ 2 ]

0 голосов
/ 23 сентября 2011

Из источника Капибара вы можете увидеть, как работает метод значения:

option = native.xpath(".//option[@selected='selected']").first || native.xpath(".//option").first
option[:value] || option.content if option

Таким образом, похоже, что по замыслу он вернет значение параметра, если оно есть, а в противном случаевернет текстовое содержимое.И обратите внимание, что если не выбран ни один параметр, он будет по умолчанию первым, как в реальном браузере.

Чтобы получить желаемое поведение, вы можете сделать что-то вроде этого:

node = find_field('search_user_id_equals_any')
option = node.xpath(".//option[@selected='selected']").first || node.xpath(".//option").first
option_text = option.content
0 голосов
/ 21 сентября 2011

Как насчет:

   find_field(search_user_id_equals_any).value.should =~ /#{your_expected_value}/

...