Class: Celerity::Frame
- Includes:
- Container
- Defined in:
- lib/celerity/elements/frame.rb
Constant Summary collapse
- TAGS =
[Identifier.new('frame'), Identifier.new('iframe')]
- ATTRIBUTES =
BASE_ATTRIBUTES | [:longdesc, :name, :src, :frameborder, :marginwidth, :marginheight, :noresize, :scrolling]
- DEFAULT_HOW =
:name
Constants inherited from Element
Element::BASE_ATTRIBUTES, Element::CELLHALIGN_ATTRIBUTES, Element::CELLVALIGN_ATTRIBUTES, Element::HTML_401_TRANSITIONAL, Element::TO_S_SIZE
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 Container
#area, #areas, #button, #buttons, #cell, #cells, #check_box, #checkboxes, #container=, #contains_text, #dd, #dds, #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, #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, #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
63 64 65 66 67 68 69 70 71 72 |
# File 'lib/celerity/elements/frame.rb', line 63 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.
4 5 6 |
# File 'lib/celerity/elements/frame.rb', line 4 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)
31 32 33 34 35 36 |
# File 'lib/celerity/elements/frame.rb', line 31 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)
42 43 44 45 |
# File 'lib/celerity/elements/frame.rb', line 42 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.
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/celerity/elements/frame.rb', line 15 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
58 59 60 61 |
# File 'lib/celerity/elements/frame.rb', line 58 def to_s assert_exists 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.
54 55 56 |
# File 'lib/celerity/elements/frame.rb', line 54 def update_page(value) @browser.page = value.getEnclosingWindow.getTopWindow.getEnclosedPage end |