Module: HtmlSelectorsHelpers
- Defined in:
- lib/testing/selectors.rb
Constant Summary collapse
- Word =
Maps a name to a selector. Used primarily by the
When /^(.+) within (.+)$/ do |step, scope|
step definitions in web_steps.rb
/[a-z_\-]+/
Instance Method Summary collapse
Instance Method Details
#selector_for(locator) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/testing/selectors.rb', line 9 def selector_for(locator) case locator when /the page/ "html > body" when /([a-z ]+) form/ name = $1.gsub(' ', '_') #.gsub(/edit_/, '') "form.#{name}, form##{name}" # I follow "View" within the "Blog" row # ^^^^^^^^^^^^^^ # selects the rows in which the given text shows up when /the "([^"]*)" row/ having_text = %Q~contains( text(), "#{$1}")~ row = "//table//tr[ descendant::*[#{having_text}] ]" [:xpath, row] # I should see "Categories" within tabs # ^^^^ when /^(?:a?n )?(#{Word})$/ ".#{$1}" when 'the title' "h1,h2,h3" when 'the top menu' "#top" when 'the main menu' "ul.main.menu" when /^the actions? menu$/ "#actions" when /^the (#{Word})$/ "##{$1}" # Add more mappings here. # Here is an example that pulls values out of the Regexp: # # when /the (notice|error|info) flash/ # ".flash.#{$1}" # You can also return an array to use a different selector # type, like: # # when /the header/ # [:xpath, "//header"] # This allows you to provide a quoted selector as the scope # for "within" steps as was previously the default for the # web steps: when /"(.+)"/ $1 else raise "Can't find mapping from \"#{locator}\" to a selector.\n" + "Now, go and add a mapping in #{__FILE__}" end end |