Module: AppiumFailureHelper::XPathFactory

Defined in:
lib/appium_failure_helper/xpath_factory.rb

Constant Summary collapse

MAX_STRATEGIES =
20

Class Method Summary collapse

Class Method Details

.generate_for_node(node) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/appium_failure_helper/xpath_factory.rb', line 5

def self.generate_for_node(node)
  return [] unless node
  tag = node.name
  attrs = node.attributes.transform_values(&:value) || {}
  strategies = []

  add_direct_attribute_strategies(strategies, tag, attrs)
  add_combinatorial_strategies(strategies, tag, attrs)
  add_parent_based_strategies(strategies, tag, node)
  add_relational_strategies(strategies, node)
  add_partial_text_strategies(strategies, tag, attrs)
  add_boolean_strategies(strategies, tag, attrs)
  add_positional_strategies(strategies, node)
  
  strategies.uniq { |s| s[:locator] }.first(MAX_STRATEGIES)
end