Sha256: ffe9654eff3657d7f8af291527c84cd6078de5b7ab2a2827ce6aa352029db16f
Contents?: true
Size: 1.78 KB
Versions: 1
Compression:
Stored size: 1.78 KB
Contents
require 'mechanize' require 'mechanical-cuke/save_and_open' module MechanicalCuke class << self attr_accessor :save_and_open_page_path def configure yield self end end def mechanize @mechanize ||= Mechanize.new end def get(url) mechanize.get(url) end def current_page mechanize.current_page end def response_body current_page.body end def body current_page.body end def form current_page.forms.first end def basic_auth(username,password) mechanize.basic_auth(username,password) end end private def find_by_id(id) node = current_page.search("##{id}") node.first end def find_by_label(field) label = current_page.labels.find { |l| l.text == field } !label.nil? ? label.for.first : nil end def find_field(field) # Search by id if (node = find_by_id(field)) return form.field_with(:node => node) end # Then by name if (f = form.field_with(:name => field)) return f end # And finally by label if (node = find_by_label(field)) return form.field_with(:node => node) end return nil end def find_radiobutton(field) # Search by id if (node = find_by_id(field)) return form.radiobutton_with(:node => node.first) end # And by label if (node = find_by_label(field)) return form.radiobutton_with(:node => node) end return nil end def find_checkbox(field) # Search by id if (node = find_by_id(field)) return form.checkbox_with(:node => node.first) end # Then by name if (f = form.checkbox_with(:name => field)) return f end # And finally by label if (node = find_by_label(field)) return form.checkbox_with(:node => node) end return nil end unless defined?(Capybara) require 'mechanical-cuke/web_steps' World(MechanicalCuke) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mechanical-cuke-0.5.0 | lib/mechanical-cuke.rb |