From 260ef1ae4e09246b8c1c548c5abcfe7f6cc1c5e7 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Sun, 30 Nov 2008 15:51:44 -0500 Subject: [PATCH] Use FieldNamedLocator in form --- lib/webrat/core/elements/field.rb | 4 ---- lib/webrat/core/elements/form.rb | 8 ++++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/webrat/core/elements/field.rb b/lib/webrat/core/elements/field.rb index 98f22b6..c11330b 100644 --- a/lib/webrat/core/elements/field.rb +++ b/lib/webrat/core/elements/field.rb @@ -64,10 +64,6 @@ module Webrat def id Webrat::XML.attribute(@element, "id") end - - def matches_name?(name) - Webrat::XML.attribute(@element, "name") == name.to_s - end def disabled? @element.attributes.has_key?("disabled") && Webrat::XML.attribute(@element, "disabled") != 'false' diff --git a/lib/webrat/core/elements/form.rb b/lib/webrat/core/elements/form.rb index 1f57f2a..9102298 100644 --- a/lib/webrat/core/elements/form.rb +++ b/lib/webrat/core/elements/form.rb @@ -2,6 +2,7 @@ require "webrat/core/elements/field" require "webrat/core_extensions/blank" require "webrat/core/elements/element" +require "webrat/core/locators/field_named_locator" module Webrat class Form < Element #:nodoc: @@ -28,12 +29,15 @@ module Webrat end def field_named(name, *field_types) - possible_fields = fields_by_type(field_types) - possible_fields.detect { |possible_field| possible_field.matches_name?(name) } + Webrat::Locators::FieldNamedLocator.new(@session, dom, name, *field_types).locate end protected + def dom + Webrat::XML.xpath_at(@session.dom, path) + end + def fields_by_type(field_types) if field_types.any? fields.select { |f| field_types.include?(f.class) }