Class: Selenium::WebDriver::Support::Select
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Support::Select
- Defined in:
- rb/lib/selenium/webdriver/support/select.rb
Defined Under Namespace
Modules: Escaper
Instance Method Summary (collapse)
-
- (Object) deselect_all
Deselect all selected options.
-
- (Object) deselect_by(how, what)
Deselect options by visible text, index or value.
-
- (Element) first_selected_option
Get the first selected option in this select element.
-
- (Select) initialize(element)
constructor
A new instance of Select.
-
- (Boolean) multiple?
Does this select element support selecting multiple options?.
-
- (Array<Element>) options
Get all options for this select element.
-
- (Object) select_all
Select all unselected options.
-
- (Object) select_by(how, what)
Select options by visible text, index or value.
-
- (Array<Element>) selected_options
Get all selected options for this select element.
Constructor Details
- (Select) initialize(element)
Returns a new instance of Select
10 11 12 13 14 15 16 17 18 19 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 10 def initialize(element) tag_name = element.tag_name unless tag_name.downcase == "select" raise ArgumentError, "unexpected tag name #{tag_name.inspect}" end @element = element @multi = ![nil, "false"].include?(element.attribute(:multiple)) end |
Instance Method Details
- (Object) deselect_all
Deselect all selected options. Only valid if the element supports multiple selections.
138 139 140 141 142 143 144 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 138 def deselect_all unless multiple? raise Error::UnsupportedOperationError, 'you may only deselect all options of a multi-select' end .each { |e| deselect_option e } end |
- (Object) deselect_by(how, what)
Deselect options by visible text, index or value.
105 106 107 108 109 110 111 112 113 114 115 116 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 105 def deselect_by(how, what) case how when :text deselect_by_text what when :value deselect_by_value what when :index deselect_by_index what else raise ArgumentError, "can't deselect options by #{how.inspect}" end end |
- (Element) first_selected_option
Get the first selected option in this select element
58 59 60 61 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 58 def first_selected_option option = .find { |e| e.selected? } option or raise Error::NoSuchElementError, 'no options are selected' end |
- (Boolean) multiple?
Does this select element support selecting multiple options?
27 28 29 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 27 def multiple? @multi end |
- (Array<Element>) options
Get all options for this select element
37 38 39 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 37 def @element.find_elements :tag_name, 'option' end |
- (Object) select_all
Select all unselected options. Only valid if the element supports multiple selections.
124 125 126 127 128 129 130 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 124 def select_all unless multiple? raise Error::UnsupportedOperationError, 'you may only select all options of a multi-select' end .each { |e| select_option e } end |
- (Object) select_by(how, what)
Select options by visible text, index or value.
When selecting by :text, selects options that display text matching the argument. That is, when given “Bar” this would select an option like:
<option value="foo">Bar</option>
When slecting by :value, selects all options that have a value matching the argument. That is, when given “foo” this would select an option like:
<option value="foo">Bar</option>
When selecting by :index, selects the option at the given index. This is done by examining the “index” attribute of an element, and not merely by counting.
83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 83 def select_by(how, what) case how when :text select_by_text what when :index select_by_index what when :value select_by_value what else raise ArgumentError, "can't select options by #{how.inspect}" end end |
- (Array<Element>) selected_options
Get all selected options for this select element
47 48 49 |
# File 'rb/lib/selenium/webdriver/support/select.rb', line 47 def .select { |e| e.selected? } end |