Sha256: b001235d95df58c0696dc48eabb079b6266b871ae603d45340e76189d898f4db

Contents?: true

Size: 1.29 KB

Versions: 4

Compression:

Stored size: 1.29 KB

Contents

module Selenium
  module WebDriver

    # @api private
    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, down_by = nil, right_by = nil)
        unless element.kind_of? Element
          raise TypeError, "expected #{Element}, got #{element.inspect}:#{element.class}"
        end

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

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

      private

      def move_if_needed(element)
        move_to element if element
      end

    end # Mouse
  end # WebDriver
end  # Selenium

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
selenium-webdriver-0.2.1 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-0.2.0 lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-0.2.0.dev lib/selenium/webdriver/common/mouse.rb
selenium-webdriver-0.1.4 lib/selenium/webdriver/common/mouse.rb