lib/watir-webdriver/elements/iframe.rb in watir-webdriver-0.9.1 vs lib/watir-webdriver/elements/iframe.rb in watir-webdriver-0.9.2

- old
+ new

@@ -2,11 +2,15 @@ class IFrame < HTMLElement def locate @parent.assert_exists - locator = locator_class.new(@parent.wd, @selector.merge(tag_name: frame_tag), self.class.attribute_list) + selector = @selector.merge(tag_name: frame_tag) + element_validator = element_validator_class.new + selector_builder = selector_builder_class.new(@parent, selector, self.class.attribute_list) + locator = locator_class.new(@parent, selector, selector_builder, element_validator) + element = locator.locate element or raise UnknownFrameException, "unable to locate #{@selector[:tag_name]} using #{selector_string}" FramedDriver.new(element, driver) end @@ -21,16 +25,29 @@ end super end + # + # Returns text of iframe body. + # + # @return [String] + # + + def text + body.text + end + + # + # Returns HTML code of iframe. + # + # @return [String] + # + def html assert_exists - - # this will actually give us the innerHTML instead of the outerHTML of the <frame>, - # but given the choice this seems more useful - element_call { execute_atom(:getOuterHtml, @element.find_element(tag_name: "html")).strip } + wd.page_source end def execute_script(*args) browser.execute_script(*args) end @@ -53,22 +70,20 @@ # be called after `#elements.` element_indexes = elements.map { |el| all_elements.index(el) } element_indexes.map { |idx| element_class.new(@parent, tag_name: @selector[:tag_name], index: idx) } end - def element_class - IFrame - end - private def all_elements - locator_class.new( - @parent.wd, - { tag_name: @selector[:tag_name] }, - element_class.attribute_list - ).locate_all + selector = { tag_name: @selector[:tag_name] } + + element_validator = element_validator_class.new + selector_builder = selector_builder_class.new(@parent, selector, element_class.attribute_list) + locator = locator_class.new(@parent, selector, selector_builder, element_validator) + + locator.locate_all end end # IFrameCollection @@ -82,14 +97,9 @@ end # Frame class FrameCollection < IFrameCollection - - def element_class - Frame - end - end # FrameCollection module Container