lib/page-object/elements/element.rb in page-object-0.4.1 vs lib/page-object/elements/element.rb in page-object-0.4.2

- old
+ new

@@ -82,11 +82,24 @@ end def self.build_xpath_for identifier tag_locator = identifier.delete(:tag_name) idx = identifier.delete(:index) - identifier.delete(:tag_name) - xpath = ".//#{tag_locator}" + if tag_locator == 'input' and identifier[:type] == 'submit' + identifier.delete(:type) + btn_ident = identifier.clone + if btn_ident[:value] + btn_ident[:text] = btn_ident[:value] + btn_ident.delete(:value) + end + xpath = ".//button" + xpath << "[#{attribute_expression(btn_ident)}]" unless btn_ident.empty? + xpath << "[#{idx+1}]" if idx + identifier[:type] = %w[button reset submit image] + xpath << " | .//input" + else + xpath = ".//#{tag_locator}" + end xpath << "[#{attribute_expression(identifier)}]" unless identifier.empty? xpath << "[#{idx+1}]" if idx xpath end