=begin
#
# This module contains the factory methods that are used to access most html objects
#
# For example, to access a button on a web page that has the following html
#
#
# the following Firewatir code could be used
#
# ff.button(:name, 'b1').click
#
# or
#
# ff.button(:value, 'Click Me').to_s
#
# One can use any attribute to uniquely identify an element including the user defined attributes
# that is rendered on the HTML screen. Though, Attribute used to access an element depends on the type of element,
# attributes used frequently to address an element are listed below
#
# :index - find the item using the index in the container ( a container can be a document,
# a TableCell, a Span, a Div or a P)
# index is 1 based
# :name - find the item using the name attribute
# :id - find the item using the id attribute
# :value - find the item using the value attribute
# :caption - same as value
# :xpath - finds the item using xpath query
#
# Typical Usage
#
# ff.button(:id, 'b_1') # access the button with an ID of b_1
# ff.button(:name, 'verify_data') # access the button with a name of verify_data
# ff.button(:value, 'Login') # access the button with a value (the text displayed on the button) of Login
# ff.button(:caption, 'Login') # same as above
# ff.button(:value, /Log/) # access the button that has text matching /Log/
# ff.button(:index, 2) # access the second button on the page ( 1 based, so the first button is accessed with :index,1)
#
=end
require 'firewatir/exceptions'
module FireWatir
module Container
include FireWatir
include Watir::Exception
include JsshSocket
# IP Address of the machine where the script is to be executed. Default to localhost.
MACHINE_IP = "127.0.0.1"
# The default color for highlighting objects as they are accessed.
DEFAULT_HIGHLIGHT_COLOR = "yellow"
public
#
# Description:
# Used to access a frame element. Usually an or