Sha256: 23f97cdf7ac593a2ae62df103bce6791d7b9a058533d713bf13ab40439a5ab6a
Contents?: true
Size: 1.94 KB
Versions: 2
Compression:
Stored size: 1.94 KB
Contents
module PageObject module Elements # # Contains functionality that is common across all elements. # # @see PageObject::Platforms::WatirElement for the Watir version of all common methods # @see PageObject::Platforms::SeleniumElement for the Selenium version of all common methods # class Element attr_reader :element def initialize(element, platform) @element = element include_platform_for platform end # @private def self.watir_identifier_for identifier identifier_for identifier, watir_finders, watir_mapping end # @private def self.selenium_identifier_for identifier identifier = identifier_for identifier, selenium_finders, selenium_mapping return identifier.keys.first, identifier.values.first end protected def self.identifier_for identifier, find_by, find_by_mapping how, what = identifier.keys.first, identifier.values.first return how => what if find_by.include? how return find_by_mapping[how] => what if find_by_mapping[how] return nil => what end def self.watir_finders [:class, :id, :index, :name, :xpath] end def self.watir_mapping {} end def self.selenium_finders [:class, :id, :name, :xpath] end def self.selenium_mapping {} end def include_platform_for platform if platform[:platform] == :watir require 'page-object/platforms/watir_element' self.class.send :include, PageObject::Platforms::WatirElement elsif platform[:platform] == :selenium require 'page-object/platforms/selenium_element' self.class.send :include, PageObject::Platforms::SeleniumElement else raise ArgumentError, "expect platform to be :watir or :selenium" end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
page-object-0.0.5 | lib/page-object/elements/element.rb |
page-object-0.0.4 | lib/page-object/elements/element.rb |