Skip to content

Commit

Permalink
Merge dc7b23f into 00ff4fc
Browse files Browse the repository at this point in the history
  • Loading branch information
twalpole committed May 6, 2019
2 parents 00ff4fc + dc7b23f commit d9dd2b7
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 1 deletion.
26 changes: 25 additions & 1 deletion lib/capybara/node/actions.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,31 @@ module Actions
def click_link_or_button(locator = nil, **options)
find(:link_or_button, locator, options).click
end
alias_method :click_on, :click_link_or_button

##
#
# Finds an element and clicks on it
#
# By default this is an alias of {Capybara::Node::Actions#click_llink_or_button}
# @overload click_on([locator], **options)
# By default this is an alias of {Capybara::Node::Actions#click_link_or_button}
# @macro waiting_behavior
# @param [String] locator See {Capybara::Node::Actions#click_button} and {Capybara::Node::Actions#click_link}
#
# @overload click_on(selector, [locator], **options)
# @macro waiting_behavior
# @param [Symbol] symbol A registered selector type (:css, :xpath, :element, ...) See {Capybara::Selector} for built-in selectors.
# @param [String] locator See {Capybara::Selector} for locator specifics
#
# @return [Capybara::Node::Element] The element clicked
#
def click_on(*args, **options)
if args[0].is_a?(Symbol)
find(*args, **options).click
else
click_link_or_button(*args, **options)
end
end

##
#
Expand Down
15 changes: 15 additions & 0 deletions lib/capybara/spec/session/click_on_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# frozen_string_literal: true

Capybara::SpecHelper.spec '#click_on' do
it 'should default to being an alias for #click_link_or_button' do
@session.visit('/form')
@session.click_on('awe123')
expect(extract_results(@session)['first_name']).to eq('John')
end

it 'should allow specifying a selector type' do
@session.visit('/form')
cbox = @session.click_on(:checkbox, 'form_terms_of_use')
expect(cbox).to be_checked
end
end

0 comments on commit d9dd2b7

Please sign in to comment.