Reputation: 1227
Using cucumber and capybara to test a rails app. Assuming I cannot change the markup, can I use capybara to select the following select in a page full of similar td
s and select
s?
<td>
<select name="attributes[ruby][category]">
<option value="2" selected="selected">Languages</option>
<option value="3">Communication</option>
</select>
</td>
This seems to fail (I assume because of the nested "[" and "]").
find("select[name=attributes[ruby][category]]")
Escaping doesn't work either. Thoughts?
Upvotes: 11
Views: 27867
Reputation: 1133
More generally you can use XPath
find(:xpath, "//select[@name='attributes[ruby][category]'")
This approach has the advantage that it can be used for any attribute.
Upvotes: 2
Reputation: 11076
I think you need to quote the attribute value:
find("select[name='attributes[ruby][category]']")
but maro's suggestion of using find_field is a cleaner approach.
Upvotes: 5
Reputation: 1506
You can try find('select', :name => 'attributes[ruby][category]')
or find_field('attributes[ruby][category]')
.
Upvotes: 24