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.



68
69
70
71
72
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 68

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)


78
79
80
81
82
83
84
85
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 78

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)


87
88
89
90
# File 'lib/selenium/webdriver/common/interactions/pointer_input.rb', line 87

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

#encodeObject



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

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

#typeObject



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

def type
  @direction
end