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
|