From 9ad3ad3a25dc4d18fd7c13de79c84f6ae436dadd Mon Sep 17 00:00:00 2001 From: Pavel Gabriel Date: Fri, 19 Feb 2010 02:29:53 +0200 Subject: [PATCH] Add xpath query for input type=button into XPath.button --- lib/capybara/xpath.rb | 4 ++-- spec/views/form.erb | 1 + spec/xpath_spec.rb | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/capybara/xpath.rb b/lib/capybara/xpath.rb index 8be558e9..575db02f 100644 --- a/lib/capybara/xpath.rb +++ b/lib/capybara/xpath.rb @@ -69,9 +69,9 @@ module Capybara end def button(locator) - xpath = append("//input[@type='submit' or @type='image'][@id=#{s(locator)} or contains(@value,#{s(locator)})]") + xpath = append("//input[@type='submit' or @type='image' or @type='button'][@id=#{s(locator)} or contains(@value,#{s(locator)})]") xpath = xpath.append("//button[@id=#{s(locator)} or contains(@value,#{s(locator)}) or contains(.,#{s(locator)})]") - xpath = xpath.prepend("//input[@type='submit' or @type='image'][@value=#{s(locator)}]") + xpath = xpath.prepend("//input[@type='submit' or @type='image' or @type='button'][@value=#{s(locator)}]") xpath = xpath.prepend("//button[@value=#{s(locator)} or text()=#{s(locator)}]") end diff --git a/spec/views/form.erb b/spec/views/form.erb index df4ca967..fe46b7fa 100644 --- a/spec/views/form.erb +++ b/spec/views/form.erb @@ -138,6 +138,7 @@

+ diff --git a/spec/xpath_spec.rb b/spec/xpath_spec.rb index 4d9662e0..c647f68d 100644 --- a/spec/xpath_spec.rb +++ b/spec/xpath_spec.rb @@ -166,6 +166,10 @@ describe Capybara::XPath do @driver.find(@query).first.value.should == 'click_me' @query = @xpath.button('Click me!').to_s @driver.find(@query).first.value.should == 'click_me' + @query = @xpath.button('fresh_btn').to_s + @driver.find(@query).first.value.should == 'i am fresh' + @query = @xpath.button('i am fresh').to_s + @driver.find(@query).first[:name].should == 'form[fresh]' end end