Add `exact` config option

This commit is contained in:
Jonas Nicklas 2013-02-15 20:02:15 +01:00
parent aa3d3e1ead
commit 83570f3ece
4 changed files with 12 additions and 3 deletions

View File

@ -16,7 +16,7 @@ module Capybara
class << self class << self
attr_accessor :asset_root, :app_host, :run_server, :default_host, :always_include_port attr_accessor :asset_root, :app_host, :run_server, :default_host, :always_include_port
attr_accessor :server_host, :server_port attr_accessor :server_host, :server_port, :exact
attr_accessor :default_selector, :default_wait_time, :ignore_hidden_elements attr_accessor :default_selector, :default_wait_time, :ignore_hidden_elements
attr_accessor :save_and_open_page_path, :automatic_reload attr_accessor :save_and_open_page_path, :automatic_reload
attr_writer :default_driver, :current_driver, :javascript_driver, :session_name attr_writer :default_driver, :current_driver, :javascript_driver, :session_name

View File

@ -11,6 +11,10 @@ module Capybara
@options[:visible] = Capybara.ignore_hidden_elements @options[:visible] = Capybara.ignore_hidden_elements
end end
unless options.has_key?(:exact)
@options[:exact] = Capybara.exact
end
if args[0].is_a?(Symbol) if args[0].is_a?(Symbol)
@selector = Selector.all[args[0]] @selector = Selector.all[args[0]]
@locator = args[1] @locator = args[1]
@ -27,7 +31,6 @@ module Capybara
@xpath = @xpath.to_s @xpath = @xpath.to_s
end end
assert_valid_keys! assert_valid_keys!
end end

View File

@ -127,7 +127,12 @@ Capybara::SpecHelper.spec '#find' do
end end
it "defaults to `Capybara.exact`" do it "defaults to `Capybara.exact`" do
Capybara.exact = true
expect do
@session.find(:xpath, XPath.descendant(:input)[XPath.attr(:id).is("est_fiel")])
end.to raise_error(Capybara::ElementNotFound)
Capybara.exact = false
@session.find(:xpath, XPath.descendant(:input)[XPath.attr(:id).is("est_fiel")])
end end
end end

View File

@ -19,6 +19,7 @@ module Capybara
Capybara.app_host = nil Capybara.app_host = nil
Capybara.default_selector = :xpath Capybara.default_selector = :xpath
Capybara.default_wait_time = 1 Capybara.default_wait_time = 1
Capybara.exact = false
end end
def filter(requires, metadata) def filter(requires, metadata)