Sha256: 341cab55ab7e6b9309cb6d733c6c775309ac3233a97f8b5eb1ec4b9d3fb81e28

Contents?: true

Size: 1.42 KB

Versions: 18

Compression:

Stored size: 1.42 KB

Contents

module Selenium
  module WebDriver

    #
    # @api private
    # @see ActionBuilder
    #

    class Mouse

      def initialize(bridge)
        @bridge = bridge
      end

      def click(element = nil)
        move_if_needed element
        @bridge.click
      end

      def double_click(element = nil)
        move_if_needed element
        @bridge.doubleClick
      end

      def context_click(element = nil)
        move_if_needed element
        @bridge.contextClick
      end

      def down(element = nil)
        move_if_needed element
        @bridge.mouseDown
      end

      def up(element = nil)
        move_if_needed element
        @bridge.mouseUp
      end

      #
      # Move the mouse.
      #
      # Examples:
      #
      #   driver.mouse.move_to(element)
      #   driver.mouse.move_to(element, 5, 5)
      #

      def move_to(element, right_by = nil, down_by = nil)
        assert_element element

        @bridge.mouseMoveTo element.ref, right_by, down_by
      end

      def move_by(right_by, down_by)
        @bridge.mouseMoveTo nil, Integer(right_by), Integer(down_by)
      end

      private

      def move_if_needed(element)
        move_to element if element
      end

      def assert_element(element)
        unless element.kind_of? Element
          raise TypeError, "expected #{Element}, got #{element.inspect}:#{element.class}"
        end
      end
    end # Mouse
  end # WebDriver
end  # Selenium

Version data entries

18 entries across 18 versions & 2 rubygems

Version Path
selenium-webdriver-2.45.0 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.45.0.dev3 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.45.0.dev2 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.45.0.dev lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.44.0 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.44.0.dev lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.43.0 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.42.0 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.41.0 lib/selenium/webdriver/common/mouse.rb
browserstack-webdriver-2.40.1 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.40.0 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.40.0.rc2 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.40.0.rc1 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.39.0 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.38.0 lib/selenium/webdriver/common/mouse.rb
browserstack-webdriver-0.0.22 lib/selenium/webdriver/common/mouse.rb
browserstack-webdriver-0.0.1 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-2.37.0 lib/selenium/webdriver/common/mouse.rb