diff --git a/lib/capybara/queries/selector_query.rb b/lib/capybara/queries/selector_query.rb index e362fc3c..5c086053 100644 --- a/lib/capybara/queries/selector_query.rb +++ b/lib/capybara/queries/selector_query.rb @@ -373,6 +373,10 @@ module Capybara options.key?(:style) && !custom_keys.include?(:style) end + def use_default_focused_filter? + options.key?(:focused) && !custom_keys.include?(:focused) + end + def use_spatial_filter? options.values_at(*SPATIAL_KEYS).compact.any? end @@ -498,13 +502,9 @@ module Capybara end def matches_focused_filter?(node) - if options.key?(:focused) - node_is_focused = node == node.session.active_element + return true unless use_default_focused_filter? - node_is_focused == options[:focused] - else - true - end + (node == node.session.active_element) == options[:focused] end def need_to_process_classes? diff --git a/lib/capybara/selector.rb b/lib/capybara/selector.rb index 593c779c..4deee63b 100644 --- a/lib/capybara/selector.rb +++ b/lib/capybara/selector.rb @@ -14,7 +14,7 @@ require 'capybara/selector/definition' # * :left_of (Element) - Match elements left of the passed element on the page # * :right_of (Element) - Match elements right of the passed element on the page # * :near (Element) - Match elements near (within 50px) the passed element on the page -# * :focused (Boolean) - Match elements with focus (requires JavaScript) +# * :focused (Boolean) - Match elements with focus (requires driver support) # # ### Built-in Selectors #