Support <option> tags that aren't immediate children of the <select>, i.e. with <optgroup>s

This commit is contained in:
Jason Morrison 2011-02-26 17:52:28 -05:00
parent fa3c6eddb4
commit 52ff47388d
2 changed files with 8 additions and 4 deletions

View File

@ -10,7 +10,7 @@ class Capybara::Driver::Webkit
def value
if multiple_select?
self.find("./option").select do |option|
self.find(".//option").select do |option|
option["selected"] == "selected"
end.map do |option|
option.value

View File

@ -147,9 +147,13 @@ describe Capybara::Driver::Webkit do
<option id="select-option-capybara" selected="selected">Capybara</option>
</select>
<select name="toppings" multiple="multiple">
<option selected="selected" id="topping-apple">Apple</option>
<option selected="selected" id="topping-banana">Banana</option>
<option selected="selected" id="topping-cherry">Cherry</option>
<optgroup label="Mediocre Toppings">
<option selected="selected" id="topping-apple">Apple</option>
<option selected="selected" id="topping-banana">Banana</option>
</optgroup>
<optgroup label="Best Toppings">
<option selected="selected" id="topping-cherry">Cherry</option>
</optgroup>
</select>
<textarea id="only-textarea">what a wonderful area for text</textarea>
</form>