class Selenium::WebDriver::TouchScreen
Constants
- FLICK_SPEED
Public Class Methods
new(bridge)
click to toggle source
@api private
# File lib/selenium/webdriver/common/touch_screen.rb, line 11 def initialize(bridge) @bridge = bridge end
Public Instance Methods
double_tap(element)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 20 def double_tap(element) assert_element element @bridge.touchDoubleTap element.ref end
down(x, y = nil)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 30 def down(x, y = nil) x, y = coords_from x, y @bridge.touchDown x, y end
flick(*args)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 59 def flick(*args) case args.size when 2 x_speed, y_speed = args @bridge.touchFlick Integer(x_speed), Integer(y_speed) when 4 element, xoffset, yoffset, speed = args assert_element element flick_speed = FLICK_SPEED[speed.to_sym] unless flick_speed raise ArgumentError, "expected one of #{FLICK_SPEED.keys.inspect}, got #{speed.inspect}" end @bridge.touchElementFlick element.ref, Integer(xoffset), Integer(yoffset), flick_speed else raise ArgumentError, "wrong number of arguments, expected 2 or 4, got #{args.size}" end end
long_press(element)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 25 def long_press(element) assert_element element @bridge.touchLongPress element.ref end
move(x, y = nil)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 40 def move(x, y = nil) x, y = coords_from x, y @bridge.touchMove x, y end
scroll(*args)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 45 def scroll(*args) case args.size when 2 x_offset, y_offset = args @bridge.touchScroll nil, Integer(x_offset), Integer(y_offset) when 3 element, x_offset, y_offset = args assert_element element @bridge.touchScroll 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)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 15 def single_tap(element) assert_element element @bridge.touchSingleTap element.ref end
up(x, y = nil)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 35 def up(x, y = nil) x, y = coords_from x, y @bridge.touchUp x, y end
Private Instance Methods
assert_element(element)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 97 def assert_element(element) unless element.kind_of? Element raise TypeError, "expected #{Element}, got #{element.inspect}:#{element.class}" end end
coords_from(x, y)
click to toggle source
# File lib/selenium/webdriver/common/touch_screen.rb, line 83 def coords_from(x, y) if y.nil? point = x unless point.respond_to?(:x) && point.respond_to?(:y) raise ArgumentError, "expected #{point.inspect} to respond to :x and :y" end x, y = point.x, point.y end [Integer(x), Integer(y)] end