class Capybara::Selenium::Node
def path
def path path = find_xpath(XPath.ancestor_or_self).reverse result = [] while (node = path.shift) parent = path.first selector = node.tag_name if parent siblings = parent.find_xpath(node.tag_name) selector += "[#{siblings.index(node) + 1}]" unless siblings.size == 1 end result.push selector end '/' + result.reverse.join('/') end