Class: Selenium::WebDriver::Interactions::PointerPress

Inherits:
Interaction
  • Object
show all
Defined in:
lib/selenium/webdriver/common/interactions/pointer_input.rb

Overview

PointerInput

Constant Summary collapse

BUTTONS =
{left: 0, middle: 1, right: 2}.freeze
DIRECTIONS =
{down: :pointerDown, up: :pointerUp}.freeze

Constants inherited from Interaction

Interaction::PAUSE

Instance Attribute Summary

Attributes inherited from Interaction

#source

Instance Method Summary collapse

Constructor Details

#initialize(source, direction, button) ⇒ PointerPress

Returns a new instance of PointerPress.


72
73
74
75
76
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 72

def initialize(source, direction, button)
  super(source)
  @direction = assert_direction(direction)
  @button = assert_button(button)
end

Instance Method Details

#assert_button(button) ⇒ Object

Raises:

  • (ArgumentError)

82
83
84
85
86
87
88
89
90
91
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 82

def assert_button(button)
  if button.is_a? Symbol
    raise TypeError, "#{button.inspect} is not a valid button!" unless BUTTONS.key? button

    button = BUTTONS[button]
  end
  raise ArgumentError, 'Button number cannot be negative!' unless button >= 0

  button
end

#assert_direction(direction) ⇒ Object

Raises:

  • (TypeError)

93
94
95
96
97
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 93

def assert_direction(direction)
  raise TypeError, "#{direction.inspect} is not a valid button direction" unless DIRECTIONS.key? direction

  DIRECTIONS[direction]
end

#encodeObject


99
100
101
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 99

def encode
  {type: type, button: @button}
end

#typeObject


78
79
80
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 78

def type
  @direction
end