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