multi checkbox finder

This commit is contained in:
John Bintz 2013-04-15 11:18:16 -04:00
parent 43b965b2b4
commit 9286cee425
1 changed files with 16 additions and 2 deletions

View File

@ -21,7 +21,12 @@ def has_attribute?(name, value)
end end
def find_input(name, additional_search = '') def find_input(name, additional_search = '')
find("[name$='[#{name}]']#{additional_search}") search = "[#{name}]"
if name[/\[\]$/]
search = "[#{name[0..-3]}][]"
end
find("[name$='#{search}']#{additional_search}")
end end
def set_input(name, value) def set_input(name, value)
@ -34,7 +39,16 @@ def set_input(name, value)
when true, false when true, false
find_input(name, '[type=checkbox]') find_input(name, '[type=checkbox]')
else else
begin
find_input(name) find_input(name)
rescue Capybara::ElementNotFound
search_value = value
search_value = value.id if value.respond_to?(:id)
result = find_input("#{name}_ids[]", "[value='#{search_value}']")
value = true
result
end
end end
case input.tag_name.downcase case input.tag_name.downcase