class SpecTest::Platforms::SeleniumWebDriver::PlatformObject
Public Class Methods
new(browser)
click to toggle source
# File lib/spectest/platform_selenium/platform_object.rb, line 6 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_selenium/platform_object.rb, line 41 def click_link_for(locator) key, value, enclosers = get_platform_locator_for(locator, WebObjects::Link, 'a') switch_to_encloser(enclosers) @browser.find_element(key, value).click @browser.switch_to.default_content unless enclosers.nil? 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_selenium/platform_object.rb, line 31 def get_link_for(locator) key, value, enclosers = get_platform_locator_for(locator, WebObjects::Link, 'a') switch_to_encloser(enclosers) web_object = @browser.find_element(key, value) @browser.switch_to.default_content unless enclosers.nil? WebObjects::Link.new(web_object, :platform => :selenium_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_selenium/platform_object.rb, line 51 def get_text_field_for(locator) key, value, enclosers = get_platform_locator_for(locator, WebObjects::TextField, 'input', :type => 'text') switch_to_encloser(enclosers) web_object = @browser.find_element(key, value) @browser.switch_to.default_content unless enclosers.nil? WebObjects::TextField.new(web_object, :platform => :selenium_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_selenium/platform_object.rb, line 61 def get_text_field_value_for(locator) key, value, enclosers = get_platform_locator_for(locator, WebObjects::TextField, 'input', :type => 'text') switch_to_encloser(enclosers) value = @browser.find_element(key, value).attribute('value') @browser.switch_to.default_content unless enclosers.nil? 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_selenium/platform_object.rb, line 71 def set_text_field_value_for(locator, text) key, value, enclosers = get_platform_locator_for(locator, WebObjects::TextField, 'input', :type => 'text') switch_to_encloser(enclosers) @browser.find_element(key, value).clear @browser.find_element(key, value).send_keys(text) @browser.switch_to.default_content unless enclosers.nil? end
text()
click to toggle source
Platform method to retrieve text from the current page. See SpecTest#text
# File lib/spectest/platform_selenium/platform_object.rb, line 24 def text @browser.find_element(:tag_name, 'body').text end
title()
click to toggle source
Platform method to retrieve the title for the current page. See SpecTest#title
# File lib/spectest/platform_selenium/platform_object.rb, line 18 def title @browser.title end
Protected Instance Methods
get_platform_locator_for(locator, web_object, tag=nil, qualifier=nil)
click to toggle source
# File lib/spectest/platform_selenium/platform_object.rb, line 101 def get_platform_locator_for(locator, web_object, tag=nil, qualifier=nil) enclosers = locator.delete(:frame) locator = qualify_with_tagname_for locator, tag, qualifier if tag key, value = web_object.have_selenium_find_object_with locator return key, value, enclosers end
qualify_with_tagname_for(locator, tag, qualifier=nil)
click to toggle source
# File lib/spectest/platform_selenium/platform_object.rb, line 108 def qualify_with_tagname_for(locator, tag, qualifier=nil) return locator if locator.length < 2 and support_is_provided_for locator, tag, qualifier locator[:tag_name] = tag if qualifier qualifier.each do |key, value| locator[key] = value end end locator end
support_is_provided_for(locator, tag, qualifier)
click to toggle source
# File lib/spectest/platform_selenium/platform_object.rb, line 119 def support_is_provided_for(locator, tag, qualifier) return false if locator[:index] return false if locator[:text] and tag == 'input' and qualifier[:type] == 'hidden' return false if locator[:href] and tag == 'a' return false if locator[:text] and ['div', 'span', 'td'].include? tag return false if locator[:value] and tag == 'input' and qualifier[:type] == 'submit' return false if locator[:value] and tag == 'input' and qualifier[:type] == 'radio' true end
switch_to_encloser(enclosers)
click to toggle source
# File lib/spectest/platform_selenium/platform_object.rb, line 129 def switch_to_encloser(enclosers) unless enclosers.nil? enclosers.each do |encloser_locator| value = encloser_locator.values.first @browser.switch_to.frame(value) end end end