Ruby-on-rails – Get select value of dropdown for capybara testing

capybararspecruby-on-rails

I have to write tests for a web site. I am trying to get the selected value of a dropdown box. So far i can get the contents of the dropdown by doing

find_field('restrictions__rating_movies').text

returns –
Don't Allow Movies
G
PG
M
R13
R15
R16
R18
R
RP16
Allow All Movies

I can get the value of the selected object.

find_field('restrictions__rating_movies').value

returns –
1000

This does not help me much though because i am trying to get the text of the selected item from a drop down box.

<select class="" id="restrictions__rating_movies" name="restrictions[][rating_movies]">            
<option value="0">Don't Allow Movies</option>
<option value="100">G</option>
<option value="200">PG</option>
<option value="300">M</option>
<option value="325">R13</option>
<option value="350">R15</option>
<option value="375">R16</option>
<option value="400">R18</option>
<option value="500">R</option>
<option value="600">RP16</option>
<option value="1000" selected="selected">Allow All Movies</option></select>

in this case shown i need to get the value 'Allow All Movies' I have tried many different combinations of the above two examples.

Best Answer

There's a have_select matcher if you use Capybara with Rspec:

expect(page).to have_select('my-select', selected: 'Option 2')
Related Topic