1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00

Allow overriding/optimizing focused filter in selectors

This commit is contained in:
Thomas Walpole 2021-08-18 09:05:34 -07:00
parent 689b8cb2fb
commit 9d6153ef0b
2 changed files with 7 additions and 7 deletions

View file

@ -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?

View file

@ -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
#