Add `exact` config option
This commit is contained in:
parent
aa3d3e1ead
commit
83570f3ece
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue