Module: Capybara::Node::Actions
- Included in:
- Base
- Defined in:
- lib/capybara/node/actions.rb
Instance Method Summary collapse
-
#attach_file(locator, path) ⇒ Object
Find a file field on the page and attach a file given its path.
-
#check(locator) ⇒ Object
Find a check box and mark it as checked.
-
#choose(locator) ⇒ Object
Find a radio button and mark it as checked.
-
#click_button(locator) ⇒ Object
Finds a button by id, text or value and clicks it.
-
#click_link(locator) ⇒ Object
Finds a link by id or text and clicks it.
-
#click_link_or_button(locator) ⇒ Object
(also: #click_on)
Finds a button or link by id, text or value and clicks it.
-
#fill_in(locator, options = {}) ⇒ Object
Locate a text field or text area and fill it in with the given text The field can be found via its name, id or label text.
-
#select(value, options = {}) ⇒ Object
Find a select box on the page and select a particular option from it.
-
#uncheck(locator) ⇒ Object
Find a check box and mark uncheck it.
-
#unselect(value, options = {}) ⇒ Object
Find a select box on the page and unselect a particular option from it.
Instance Method Details
#attach_file(locator, path) ⇒ Object
Find a file field on the page and attach a file given its path. The file field can be found via its name, id or label text.
page.attach_file(locator, '/path/to/file.png')
140 141 142 143 |
# File 'lib/capybara/node/actions.rb', line 140 def attach_file(locator, path) raise Capybara::FileNotFound, "cannot attach file, #{path} does not exist" unless File.exist?(path.to_s) find(:file_field, locator).set(path) end |
#check(locator) ⇒ Object
Find a check box and mark it as checked. The check box can be found via name, id or label text.
page.check('German')
75 76 77 |
# File 'lib/capybara/node/actions.rb', line 75 def check(locator) find(:checkbox, locator).set(true) end |
#choose(locator) ⇒ Object
Find a radio button and mark it as checked. The radio button can be found via name, id or label text.
page.choose('Male')
62 63 64 |
# File 'lib/capybara/node/actions.rb', line 62 def choose(locator) find(:radio_button, locator).set(true) end |
#click_button(locator) ⇒ Object
Finds a button by id, text or value and clicks it.
34 35 36 |
# File 'lib/capybara/node/actions.rb', line 34 def (locator) find(:button, locator).click end |
#click_link(locator) ⇒ Object
Finds a link by id or text and clicks it. Also looks at image alt text inside the link.
24 25 26 |
# File 'lib/capybara/node/actions.rb', line 24 def click_link(locator) find(:link, locator).click end |
#click_link_or_button(locator) ⇒ Object Also known as: click_on
Finds a button or link by id, text or value and clicks it. Also looks at image alt text inside the link.
12 13 14 |
# File 'lib/capybara/node/actions.rb', line 12 def (locator) find(:link_or_button, locator).click end |
#fill_in(locator, options = {}) ⇒ Object
Locate a text field or text area and fill it in with the given text The field can be found via its name, id or label text.
page.fill_in 'Name', :with => 'Bob'
48 49 50 51 |
# File 'lib/capybara/node/actions.rb', line 48 def fill_in(locator, ={}) raise "Must pass a hash containing 'with'" if not .is_a?(Hash) or not .has_key?(:with) find(:fillable_field, locator).set([:with]) end |
#select(value, options = {}) ⇒ Object
Find a select box on the page and select a particular option from it. If the select box is a multiple select, select
can be called multiple times to select more than one option. The select box can be found via its name, id or label text.
page.select 'March', :from => 'Month'
103 104 105 106 107 108 109 |
# File 'lib/capybara/node/actions.rb', line 103 def select(value, ={}) if .has_key?(:from) find(:select, [:from]).find(:option, value).select_option else find(:option, value).select_option end end |
#uncheck(locator) ⇒ Object
Find a check box and mark uncheck it. The check box can be found via name, id or label text.
page.uncheck('German')
88 89 90 |
# File 'lib/capybara/node/actions.rb', line 88 def uncheck(locator) find(:checkbox, locator).set(false) end |
#unselect(value, options = {}) ⇒ Object
Find a select box on the page and unselect a particular option from it. If the select box is a multiple select, unselect
can be called multiple times to unselect more than one option. The select box can be found via its name, id or label text.
page.unselect 'March', :from => 'Month'
122 123 124 125 126 127 128 |
# File 'lib/capybara/node/actions.rb', line 122 def unselect(value, ={}) if .has_key?(:from) find(:select, [:from]).find(:option, value).unselect_option else find(:option, value).unselect_option end end |