Class: Selenium::WebDriver::TouchScreen

Inherits:
Object
  • Object
show all
Defined in:
lib/selenium/webdriver/common/touch_screen.rb

Constant Summary collapse

FLICK_SPEED =
{normal: 0, fast: 1}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(bridge) ⇒ TouchScreen

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of TouchScreen.



27
28
29
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 27

def initialize(bridge)
  @bridge = bridge
end

Instance Method Details

#double_tap(element) ⇒ Object



36
37
38
39
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 36

def double_tap(element)
  assert_element element
  @bridge.touch_double_tap element.ref
end

#down(x, y = nil) ⇒ Object



46
47
48
49
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 46

def down(x, y = nil)
  x, y = coords_from x, y
  @bridge.touch_down x, y
end

#flick(*args) ⇒ Object



75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 75

def flick(*args)
  case args.size
  when 2
    x_speed, y_speed = args
    @bridge.touch_flick Integer(x_speed), Integer(y_speed)
  when 4
    element, xoffset, yoffset, speed = args

    assert_element element

    if (speed.is_a?(String) || speed.is_a?(Symbol)) && FLICK_SPEED.keys.include?(speed.to_sym)
      WebDriver.logger.deprecate "Passing #{speed.inspect} speed",
                                 "Integer or Selenium::WebDriver::TouchScreen::FLICK_SPEED[:#{speed}]"
      speed = FLICK_SPEED[speed.to_sym]
    end

    @bridge.touch_element_flick element.ref, Integer(xoffset), Integer(yoffset), Integer(speed)
  else
    raise ArgumentError, "wrong number of arguments, expected 2 or 4, got #{args.size}"
  end
end

#long_press(element) ⇒ Object



41
42
43
44
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 41

def long_press(element)
  assert_element element
  @bridge.touch_long_press element.ref
end

#move(x, y = nil) ⇒ Object



56
57
58
59
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 56

def move(x, y = nil)
  x, y = coords_from x, y
  @bridge.touch_move x, y
end

#scroll(*args) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 61

def scroll(*args)
  case args.size
  when 2
    x_offset, y_offset = args
    @bridge.touch_scroll nil, Integer(x_offset), Integer(y_offset)
  when 3
    element, x_offset, y_offset = args
    assert_element element
    @bridge.touch_scroll element.ref, Integer(x_offset), Integer(y_offset)
  else
    raise ArgumentError, "wrong number of arguments, expected 2..3, got #{args.size}"
  end
end

#single_tap(element) ⇒ Object



31
32
33
34
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 31

def single_tap(element)
  assert_element element
  @bridge.touch_single_tap element.ref
end

#up(x, y = nil) ⇒ Object



51
52
53
54
# File 'lib/selenium/webdriver/common/touch_screen.rb', line 51

def up(x, y = nil)
  x, y = coords_from x, y
  @bridge.touch_up x, y
end