2011-09-20 20 views
1
<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> 

所以,上面是下拉我想驗證的東西中選擇。黃瓜:下拉應該有物品選擇?如何與xpath?或者也許別的東西?

現在,當你點擊的東西,它不添加選定=「選擇」給你點擊任何選項,所以我不知道如何弄清選擇。

想法?

回答

0

如何:

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

+0

值是一個選項標籤的屬性中「價值」僅僅是價值,不是嗎?我希望文本匹配= \ – NullVoxPopuli

0

您可以從Capybara source看到價值方法的工作原理:

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 
相關問題