Class: Celerity::Frame
- Includes:
- Container, XpathSupport
- Defined in:
- lib/celerity/elements/frame.rb
Constant Summary collapse
- TAGS =
[Identifier.new('frame'), Identifier.new('iframe')]
- ATTRIBUTES =
BASE_ATTRIBUTES | [ :frameborder, :longdesc, :marginheight, :marginwidth, :name, :noresize, :scrolling, :src, ]
- DEFAULT_HOW =
:name
Constants inherited from Element
Element::BASE_ATTRIBUTES, Element::CELLHALIGN_ATTRIBUTES, Element::CELLVALIGN_ATTRIBUTES, Element::HTML_401_TRANSITIONAL
Instance Attribute Summary collapse
-
#page ⇒ Object
Returns the value of attribute page.
Attributes included from Container
Attributes inherited from Element
Instance Method Summary collapse
-
#assert_exists ⇒ Object
private
Override assert_exists to raise UnknownFrameException (for Watir compatibility).
-
#execute_script(source) ⇒ Object
Executes the given JavaScript string in this frame.
-
#locate ⇒ Object
private
Override the default locate to handle frame and inline frames.
- #method_missing(meth, *args, &blk) ⇒ Object
- #to_s ⇒ Object
-
#update_page(value) ⇒ Object
private
Updates the brwoser page with the page from this frame’s top window.
Methods included from XpathSupport
#element_by_xpath, #element_from_dom_node, #elements_by_xpath
Methods included from Container
#area, #areas, #button, #buttons, #cell, #cells, #check_box, #checkboxes, #container=, #contains_text, #dd, #dds, #del, #dels, #div, #divs, #dl, #dls, #dt, #dts, #em, #ems, #file_field, #file_fields, #form, #forms, #frame, #frames, #h1, #h1s, #h2, #h2s, #h3, #h3s, #h4, #h4s, #h5, #h5s, #h6, #h6s, #hidden, #hiddens, #image, #images, #ins, #inses, #inspect, #label, #labels, #li, #link, #links, #lis, #map, #maps, #meta, #metas, #ol, #ols, #option, #p, #pre, #pres, #ps, #radio, #radios, #row, #rows, #select_list, #select_lists, #span, #spans, #strong, #strongs, #table, #tables, #tbodies, #tbody, #text_field, #text_fields, #tfoot, #tfoots, #th, #thead, #theads, #ths, #ul, #uls
Methods included from ShortInspect
Methods inherited from Element
#==, #attribute_string, #attribute_value, #exists?, #fire_event, #focus, #focused?, #initialize, #javascript_object, #methods, #object, #parent, #respond_to?, #text, #to_xml, #visible?, #xpath
Constructor Details
This class inherits a constructor from Celerity::Element
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &blk) ⇒ Object
74 75 76 77 78 79 80 81 82 83 |
# File 'lib/celerity/elements/frame.rb', line 74 def method_missing(meth, *args, &blk) meth = selector_to_attribute(meth) if self.class::ATTRIBUTES.include?(meth) assert_exists @inline_frame_object.getAttribute(meth.to_s) else Log.warn "Element\#method_missing calling super with #{meth.inspect}" super end end |
Instance Attribute Details
#page ⇒ Object
Returns the value of attribute page.
6 7 8 |
# File 'lib/celerity/elements/frame.rb', line 6 def page @page end |
Instance Method Details
#assert_exists ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Override assert_exists to raise UnknownFrameException (for Watir compatibility)
42 43 44 45 46 47 |
# File 'lib/celerity/elements/frame.rb', line 42 def assert_exists locate unless @object raise UnknownFrameException, "unable to locate frame, using #{identifier_string}" end end |
#execute_script(source) ⇒ Object
Executes the given JavaScript string in this frame. (Celerity only)
53 54 55 56 |
# File 'lib/celerity/elements/frame.rb', line 53 def execute_script(source) assert_exists @page.executeJavaScript(source.to_s).getJavaScriptResult end |
#locate ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Override the default locate to handle frame and inline frames.
26 27 28 29 30 31 32 33 34 35 |
# File 'lib/celerity/elements/frame.rb', line 26 def locate super if @object @inline_frame_object = @object.getEnclosedWindow.getFrameElement self.page = @object.getEnclosedPage if (frame = self.page.getDocumentElement) @object = frame end end end |
#to_s ⇒ Object
69 70 71 72 |
# File 'lib/celerity/elements/frame.rb', line 69 def to_s assert_exists Celerity::Util.create_string @inline_frame_object end |
#update_page(value) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Updates the brwoser page with the page from this frame’s top window. Used internally.
65 66 67 |
# File 'lib/celerity/elements/frame.rb', line 65 def update_page(value) @browser.page = value.getEnclosingWindow.getTopWindow.getEnclosedPage end |