Sha256: 3e7f9e316ef7ee9467b54ba8711ad19f3432fa0b166db7084e30f6c9ec63e526
Contents?: true
Size: 1.08 KB
Versions: 10
Compression:
Stored size: 1.08 KB
Contents
class Navigate attr_reader :browser def initialize(browser) @browser = browser end def go(nav_path=[]) raise ArgumentError if nav_path.class != Array || nav_path.nitems < 1 nav_path.each { |item| case item[:type] when 'link' exec = "@browser.link(#{item[:how]}, #{item[:what]}).#{item[:action]}" eval exec when 'text_field' if item.has_key?(:value) # escape ' in item[:value] as it's used for quoted string in the set #item[:value].gsub(/'/, /\'/) exec = "@browser.text_field(#{item[:how]}, #{item[:what]}).#{item[:action]}('#{item[:value]}')" eval exec end when 'check_box' # escape ' in item[:value] as it's used for quoted string in the set #item[:value].gsub(/'/, /\'/) exec = "@browser.checkbox(#{item[:how]}, #{item[:what]}).#{item[:action]}" eval exec when 'submit' exec = "@browser.button(#{item[:how]}, #{item[:what]}).#{item[:action]}" eval exec end } end end
Version data entries
10 entries across 5 versions & 1 rubygems