Sha256: de5b693684d81eafdf4e77091f198dff786b2eeb4ad3cf1fc3dad6ef4dbafbd1
Contents?: true
Size: 1.76 KB
Versions: 2
Compression:
Stored size: 1.76 KB
Contents
# # Class that wraps the jQueryUI menu. # class JQueryUIWidgets::Menus < PageObject::Elements::UnorderedList # # The select method allows you to pass in a theoretically # infinite number of variables from the base source through the # step definitions and into page to iterate through the top # menu and into any submenus you encounter. # # @params [Array] the menu items to find. Items will be found # in the order in which they were provided. # # @example # select('Salzburg', 'Delphi', 'Ada') # will click through the menu 'Salzburg' # the sub menu 'Delphi' # and click on 'Ada' in the final submenu # def select(*labels) loop_through_menu_items(labels) do |list_item| list_item.fire_event('onclick') end end # # Search_for allows the user to supplement the select method # and search for a specific element within a menu or sub-menu. # # @params [Array] the menu items to search for. Items will # be found in the order they are given. # # @example # search_for('Delphi', 'Ada') # will find 'Ada' in the sub-menu. # def search_for(*labels) the_list_item = nil loop_through_menu_items(labels) do |list_item| the_list_item = list_item end the_list_item end private def loop_through_menu_items(labels) menu_container = self labels.each do |label| item_found = false menu_items_for(menu_container).each do |list_item| if list_item.text.slice!(label) == label yield list_item menu_container = list_item.unordered_list_element item_found = true break end end raise("Unable to find menu item #{label}") unless item_found end end def menu_items_for(menu) menu.list_item_elements end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jqueryui_widgets-0.5 | lib/jqueryui_widgets/menus.rb |
jqueryui_widgets-0.4 | lib/jqueryui_widgets/menus.rb |