module Mohawk::Accessors

Public Instance Methods

button(name, locator) click to toggle source

Generates methods to click on a button as well as get the value of the button text

@example

button(:close, :value => '&Close')
# will generate 'close' and 'close_value' methods

@param [String] name used for the generated methods @param [Hash] locator for how the button is found

# File lib/mohawk/accessors.rb, line 87
def button(name, locator)
  define_method("#{name}") do |&block|
    adapter.button(locator).click &block
  end
  define_method("#{name}_value") do
    adapter.button(locator).value
  end
  define_method("#{name}_view") do
    adapter.button(locator).view
  end
end
checkbox(name, locator) click to toggle source

Generates methods to get/set the value of a checkbox as well as to get the text value of the control

@example

checkbox(:include, :id => 'checkBoxId')
# will generate 'include', 'include=' and 'include_value' methods

@param [String] name used for the generated methods @param [Hash] locator for how the checkbox is found

# File lib/mohawk/accessors.rb, line 183
def checkbox(name, locator)
  define_method("#{name}") do
    adapter.checkbox(locator).checked?
  end
  define_method("#{name}=") do |should_check|
    adapter.checkbox(locator).set_check should_check
  end
  define_method("#{name}_value") do
    adapter.checkbox(locator).value
  end
  define_method("#{name}_view") do
    adapter.checkbox(locator).view
  end
end
combo_box(name, locator) click to toggle source
# File lib/mohawk/accessors.rb, line 115
def combo_box(name, locator)
  define_method("#{name}") do
    adapter.combo(locator).value
  end

  define_method("#{name}=") do |item|
    adapter.combo(locator).with(:combo_box).set item
  end
  alias_method "select_#{name}", "#{name}="

  define_method("#{name}_options") do
    adapter.combo(locator).options
  end
  define_method("#{name}_view") do
    adapter.combo(locator).view
  end
end
Also aliased as: combobox, dropdown, drop_down
combobox(name, locator)

combo_box aliases

Alias for: combo_box
control(name, locator) click to toggle source
# File lib/mohawk/accessors.rb, line 410
def control(name, locator)
  define_method("#{name}_value") do
    adapter.value_control(locator).value
  end
  define_method("#{name}=") do |value|
    adapter.value_control(locator).set value
  end
  define_method("click_#{name}") do |&block|
    adapter.value_control(locator).click &block
  end
  define_method("#{name}_view") do
    adapter.value_control(locator).view
  end
end
drop_down(name, locator)
Alias for: combo_box
dropdown(name, locator)
Alias for: combo_box
label(name, locator) click to toggle source

Generates methods to get the value of a label control

@example

label(:login_info, :id => 'loginInfoLabel')
# will generate a 'login_info' method

@param [String] name used for the generated methods @param [Hash] locator for how the label is found

# File lib/mohawk/accessors.rb, line 231
def label(name, locator)
  define_method("#{name}") do
    adapter.label(locator).value
  end
  define_method("#{name}_view") do
    adapter.label(locator).view
  end
end
list_box(name, locator)
Alias for: select_list
list_view(name, locator)
Alias for: table
listview(name, locator)

table aliases

Alias for: table
menu_item(name, locator) click to toggle source

Generates methods to work with menu items

@example

menu_item(:some_menu_item, :path => ["Path", "To", "A", "Menu Item"])
# will generate a 'some_menu_item' method to select a menu item

@param [String] name used for the generated methods @param [Hash] locator for how the label is found

parent(locator) click to toggle source

Defines a locator indicating a child container that is a descendant of the top-level window

@example

parent(:id => 'someOtherContainer')

@param [Hash] locator for a more specific parent container

# File lib/mohawk/accessors.rb, line 41
def parent(locator)
  define_method(:parent_container) do
    locator
  end
end
radio(name, locator) click to toggle source

Generates methods to set a radio button as well as see if one is selected

@example

radio(:morning, :id => 'morningRadio')
# will generate 'morning' and 'morning?' methods

@param [String] name used for the generated methods @param [Hash] locator for how the radio is found

# File lib/mohawk/accessors.rb, line 209
def radio(name, locator)
  define_method("#{name}") do
    adapter.radio(locator).set
  end
  define_method("#{name}?") do
    adapter.radio(locator).set?
  end
  define_method("#{name}_view") do
    adapter.radio(locator).view
  end
end
required_controls(*controls) click to toggle source
Calls superclass method
# File lib/mohawk/accessors.rb, line 19
def required_controls(*controls)
  define_method(:wait_until_present) do |context=nil|
    controls.each do |control|
      super()
      begin
        wait_until { send("#{control}_view").exist? }
      rescue Mohawk::Waiter::WaitTimeout
        raise "Control #{control} was not found on the #{self.class} screen"
      end
    end
  end
end
select_list(name, locator) click to toggle source

Generates methods to get the value of a list box, set the selected item by both index and value as well as to see the available options

@example

select_list(:status, :id => 'statusListBox')
# will generate 'status', 'status_selections', 'status=', 'select_status','clear_status' and 'status_options' methods

@param [String] name used for the generated methods @param [Hash] locator for how the list box is found

Aliases

# File lib/mohawk/accessors.rb, line 148
def select_list(name, locator)
  define_method("#{name}") do
    adapter.select_list(locator).value
  end
  define_method("clear_#{name}") do |item|
    adapter.select_list(locator).clear item
  end
  define_method("#{name}_selections") do
    adapter.select_list(locator).values
  end

  define_method("#{name}=") do |item|
    adapter.select_list(locator).set item
  end
  alias_method "select_#{name}", "#{name}="

  define_method("#{name}_options") do
    adapter.select_list(locator).options
  end
  define_method("#{name}_view") do
    adapter.select_list(locator).view
  end
end
Also aliased as: selectlist, list_box
selectlist(name, locator)

select_list aliases

Alias for: select_list
spinner(name, locator) click to toggle source

Generates methods for working with spinner controls

@example spinner(:age, :id => “ageId”)

# will generate 'age', 'age=' methods to get the spinner value and
# set the spinner value.

@param [String] name used for the generated methods @param [Hash] locator for how the spinner control is found

# File lib/mohawk/accessors.rb, line 366
def spinner(name, locator)
  define_method(name) do
    adapter.spinner(locator).value
  end
  define_method("#{name}=") do |value|
    adapter.spinner(locator).value = value
  end
  define_method("increment_#{name}") do
    adapter.spinner(locator).increment
  end
  define_method("decrement_#{name}") do
    adapter.spinner(locator).decrement
  end
  define_method("#{name}_view") do
    adapter.spinner(locator).view
  end
end
table(name, locator) click to toggle source

Generates methods for working with table or list view controls

@example

table(:some_table, :id => "tableId")
# will generate 'some_table', 'some_table=', 'some_table_headers', 'select_some_table', 'clear_some_table',
# find_some_table and 'some_table_view' methods to get an Enumerable of table rows,
# select a table item, clear a table item, return all of the headers and get the raw view

@param [String] name used for the generated methods @param [Hash] locator for how the label is found

Aliases

# File lib/mohawk/accessors.rb, line 293
def table(name, locator)
  define_method("#{name}") do
    adapter.table(locator)
  end
  define_method("#{name}=") do |which_item|
    adapter.table(locator).select which_item
  end
  define_method("add_#{name}") do |hash_info|
    adapter.table(locator).add hash_info
  end
  define_method("select_#{name}") do |hash_info|
    adapter.table(locator).select hash_info
  end
  define_method("find_#{name}") do |hash_info|
    adapter.table(locator).find_row_with hash_info
  end
  define_method("clear_#{name}") do |hash_info|
    adapter.table(locator).clear hash_info
  end
  define_method("#{name}_headers") do
    adapter.table(locator).headers
  end
  define_method("#{name}_view") do
    adapter.table(locator).view
  end
end
Also aliased as: listview, list_view
tabs(name, locator) click to toggle source

Generates methods for working with tab controls

@example

tabs(:tab, :id => "tableId")
# will generate 'tab', 'tab=' and 'tab_items' methods to get the current tab,
# set the currently selected tab (Fixnum, String or RegEx) and to get the
# available tabs to be selected

@param [String] name used for the generated methods @param [Hash] locator for how the tab control is found

# File lib/mohawk/accessors.rb, line 395
def tabs(name, locator)
  define_method(name) do
    adapter.tab_control(locator).value
  end
  define_method("#{name}=") do |which|
    adapter.tab_control(locator).selected_tab = which
  end
  define_method("#{name}_items") do
    adapter.tab_control(locator).items
  end
  define_method("#{name}_view") do
    adapter.tab_control(locator)
  end
end
text(name, locator) click to toggle source

Generates methods to enter text into a text field, get its value and clear the text field

@example

text(:first_name, :id => 'textFieldId')
# will generate 'first_name', 'first_name=' and 'clear_first_name' methods

@param [String] name used for the generated methods @param [Hash] locator for how the text is found

# File lib/mohawk/accessors.rb, line 58
def text(name, locator)
  define_method("#{name}") do
    adapter.text(locator).value
  end
  define_method("#{name}=") do |text|
    adapter.text(locator).set text
  end
  define_method("clear_#{name}") do
    adapter.text(locator).clear
  end
  define_method("enter_#{name}") do |text|
    adapter.text(locator).enter text
  end
  define_method("#{name}_view") do
    adapter.text(locator).view
  end
end
tree(name, locator)
Alias for: tree_view
tree_view(name, locator) click to toggle source

Generates methods for working with tree view controls

@example

tree_view(:tree, :id => "treeId")
# will generate 'tree', 'tree=', 'tree_items', 'expand_tree_item' and 'collapse_tree_item'
# methods to get the tree value, set the tree value (index or string), get all of the
# items, expand an item (index or string) and collapse an item (index or string)

@param [String] name used for the generated methods @param [Hash] locator for how the label is found

Aliases

  • treeview

  • tree

# File lib/mohawk/accessors.rb, line 335
def tree_view(name, locator)
  define_method("#{name}") do
    adapter.tree_view(locator).value
  end
  define_method("#{name}=") do |which_item|
    adapter.tree_view(locator).select which_item
  end
  define_method("#{name}_items") do
    adapter.tree_view(locator).items
  end
  define_method("expand_#{name}_item") do |which_item|
    adapter.tree_view(locator).expand which_item
  end
  define_method("collapse_#{name}_item") do |which_item|
    adapter.tree_view(locator).collapse which_item
  end
  define_method("#{name}_view") do
    adapter.tree_view(locator).view
  end
end
Also aliased as: treeview, tree
treeview(name, locator)

tree_view aliases

Alias for: tree_view
window(locator) click to toggle source

Defines the locator indicating the top-level window that will be used to find controls in the page

@example

window(:title => /Title of Some Window/)

@param [Hash] locator for the top-level window that hosts the page

# File lib/mohawk/accessors.rb, line 13
def window(locator)
  define_method(:which_window) do
    locator
  end
end