class SpecTest::Platforms::WatirWebDriver::PlatformObject
Attributes
browser[R]
Public Class Methods
new(browser)
click to toggle source
# File lib/spectest/platform_watir/platform_object.rb, line 8 def initialize(browser) @browser = browser end
Public Instance Methods
click_link_for(locator)
click to toggle source
Platform method to click a link object. See SpecTest::Generators#link
# File lib/spectest/platform_watir/platform_object.rb, line 42 def click_link_for(locator) locator, enclosers = get_platform_locator_for(locator, WebObjects::Link) @browser.instance_eval "#{nested_by(enclosers)}link(locator).click if locator" switch_to_default(enclosers) end
get_link_for(locator)
click to toggle source
Platform method to return a link object. Link objects are of type: SpecTest::WebObjects::Link
See SpecTest::Generators#link
# File lib/spectest/platform_watir/platform_object.rb, line 33 def get_link_for(locator) locator, enclosers = get_platform_locator_for(locator, WebObjects::Link) web_object = @browser.instance_eval "#{nested_by(enclosers)}link(locator)" switch_to_default(enclosers) WebObjects::Link.new(web_object, :platform => :watir_webdriver) end
get_text_field_for(locator)
click to toggle source
Platform method to return a text field object. Text field objects are of type: SpecTest::WebObjects::TextField
See SpecTest::Generators#text_field
# File lib/spectest/platform_watir/platform_object.rb, line 51 def get_text_field_for(locator) identifier, enclosers = get_platform_locator_for(locator, WebObjects::TextField) web_object = @browser.instance_eval "#{nested_by(enclosers)}text_field(locator)" switch_to_default(enclosers) WebObjects::TextField.new(web_object, :platform => :watir_webdriver) end
get_text_field_value_for(locator)
click to toggle source
Platform method to get the value in a text field object. See SpecTest::Generators#text_field
# File lib/spectest/platform_watir/platform_object.rb, line 60 def get_text_field_value_for(locator) identifier, enclosers = get_platform_locator_for(locator, WebObjects::TextField) value = @browser.instance_eval "#{nested_by(enclosers)}text_field(locator).value" switch_to_default(enclosers) value end
set_text_field_value_for(locator, text)
click to toggle source
Platform method to set a value in a text field object. See SpecTest::Generators#text_field
# File lib/spectest/platform_watir/platform_object.rb, line 69 def set_text_field_value_for(locator, text) identifier, enclosers = get_platform_locator_for(locator, WebObjects::TextField) SpecTest::trace("set_text_field_value_for: #{identifier}, #{enclosers}") @browser.instance_eval "#{nested_by(enclosers)}text_field(locator).set(text)" switch_to_default(enclosers) end
text()
click to toggle source
Platform method to retrieve text from the current page. See SpecTest#text
# File lib/spectest/platform_watir/platform_object.rb, line 26 def text @browser.text end
title()
click to toggle source
Platform method to retrieve the title for the current page. See SpecTest#title
# File lib/spectest/platform_watir/platform_object.rb, line 20 def title @browser.title end
Protected Instance Methods
get_platform_locator_for(locator, web_object, tag=nil)
click to toggle source
# File lib/spectest/platform_watir/platform_object.rb, line 96 def get_platform_locator_for(locator, web_object, tag=nil) enclosers = locator.delete(:frame) SpecTest::trace("get_platform_locator_for (enclosers): #{enclosers}") locator = qualify_with_tagname_for locator, tag if tag locator = web_object.have_watir_find_object_with locator return locator, enclosers end
nested_by(enclosers)
click to toggle source
# File lib/spectest/platform_watir/platform_object.rb, line 110 def nested_by(enclosers) return if enclosers.nil? encloser_locator = '' enclosers.each do |id| value = id.values.first encloser_locator += "frame(:#{id.keys.first} => #{value})." if value.to_s.is_integer? encloser_locator += "frame(:#{id.keys.first} => '#{value}')." unless value.to_s.is_integer? end encloser_locator end
qualify_with_tagname_for(locator, tag)
click to toggle source
# File lib/spectest/platform_watir/platform_object.rb, line 104 def qualify_with_tagname_for(locator, tag) return locator if locator.length < 2 and not locator[:name] locator[:tag_name] = tag if locator[:name] locator end
switch_to_default(enclosers)
click to toggle source
# File lib/spectest/platform_watir/platform_object.rb, line 123 def switch_to_default(enclosers) @browser.wd.switch_to.default_content unless enclosers.nil? end