Sha256: 0e27e2de1e060ff18718c8b18bd3270f03a8b553d1d52db3504f7ffb833affc5

Contents?: true

Size: 833 Bytes

Versions: 30

Compression:

Stored size: 833 Bytes

Contents

require "webrat/core/locators/locator"

module Webrat
  module Locators

    class FieldNamedLocator < Locator # :nodoc:

      def locate
        Field.load(@session, field_element)
      end

      def field_element
        field_elements.detect do |field_element|
          field_element["name"] == @value.to_s
        end
      end

      def field_elements
        @dom.xpath(*xpath_searches)
      end

      def xpath_searches
        if @field_types.any?
          @field_types.map { |field_type| field_type.xpath_search }.flatten
        else
          Field.xpath_search
        end
      end

      def error_message
        "Could not find field named #{@value.inspect}"
      end

    end

    def field_named(name, *field_types)
      FieldNamedLocator.new(@session, dom, name, *field_types).locate!
    end

  end
end

Version data entries

30 entries across 30 versions & 15 rubygems

Version Path
diabolo-webrat-0.5.1 lib/webrat/core/locators/field_named_locator.rb
radiant-1.0.0 ruby-debug/ruby/1.8/gems/webrat-0.7.3/lib/webrat/core/locators/field_named_locator.rb
indirect-webrat-0.7.5 lib/webrat/core/locators/field_named_locator.rb
indirect-webrat-0.7.4 lib/webrat/core/locators/field_named_locator.rb
webrat-0.7.3 lib/webrat/core/locators/field_named_locator.rb
jbd-webrat-0.7.2.rails3 lib/webrat/core/locators/field_named_locator.rb
webrat-0.7.2 lib/webrat/core/locators/field_named_locator.rb
webrat-0.7.2.beta.2 lib/webrat/core/locators/field_named_locator.rb
mutle-webrat-0.7.2.beta.1 lib/webrat/core/locators/field_named_locator.rb
thoughtbot-webrat-0.7.2.pre lib/webrat/core/locators/field_named_locator.rb
webrat-0.7.2.beta.1 lib/webrat/core/locators/field_named_locator.rb
honkster-webrat-0.7.1.2 lib/webrat/core/locators/field_named_locator.rb
honkster-webrat-0.7.1.1 lib/webrat/core/locators/field_named_locator.rb
revo-webrat-0.7.0.1 lib/webrat/core/locators/field_named_locator.rb
webrat-0.7.1 lib/webrat/core/locators/field_named_locator.rb
davidtrogers-webrat-0.7.0 lib/webrat/core/locators/field_named_locator.rb
revo-webrat-0.7.0 lib/webrat/core/locators/field_named_locator.rb
revo-webrat-0.7.1.pre lib/webrat/core/locators/field_named_locator.rb
webrat-0.7.0 lib/webrat/core/locators/field_named_locator.rb
honkster-webrat-0.6.0.10 lib/webrat/core/locators/field_named_locator.rb