@@ -138,6 +138,17 @@ module Device
138
138
# @driver.hide_keyboard(nil, :tapOutside) # Close a keyboard with tapping out side of keyboard
139
139
#
140
140
141
+ # @!method keyevent(key, metastate = nil)
142
+ # Send keyevent on the device.(Only for Selendroid)
143
+ # http://developer.android.com/reference/android/view/KeyEvent.html
144
+ # @param [integer] key The key to press.
145
+ # @param [String] metastate The state the metakeys should be in when pressing the key.
146
+ #
147
+ # @example
148
+ #
149
+ # @driver.keyevent 82
150
+ #
151
+
141
152
# @!method press_keycode(key, metastate = nil)
142
153
# Press keycode on the device.
143
154
# http://developer.android.com/reference/android/view/KeyEvent.html
@@ -391,22 +402,6 @@ def hide_keyboard(close_key = nil, strategy = nil)
391
402
end
392
403
end
393
404
394
- add_endpoint_method ( :press_keycode ) do
395
- def press_keycode ( key , metastate = nil )
396
- args = { keycode : key }
397
- args [ :metastate ] = metastate if metastate
398
- execute :press_keycode , { } , args
399
- end
400
- end
401
-
402
- add_endpoint_method ( :long_press_keycode ) do
403
- def long_press_keycode ( key , metastate = nil )
404
- args = { keycode : key }
405
- args [ :metastate ] = metastate if metastate
406
- execute :long_press_keycode , { } , args
407
- end
408
- end
409
-
410
405
add_endpoint_method ( :set_immediate_value ) do
411
406
def set_immediate_value ( element , *value )
412
407
keys = ::Selenium ::WebDriver ::Keys . encode ( value )
@@ -454,6 +449,7 @@ def update_settings(settings)
454
449
end
455
450
end
456
451
452
+ add_keyevent
457
453
add_touch_actions
458
454
add_ime_actions
459
455
add_handling_context
@@ -498,6 +494,33 @@ def create_bridge_command(method)
498
494
end
499
495
end
500
496
497
+ def add_keyevent
498
+ # Only for Selendroid
499
+ add_endpoint_method ( :keyevent ) do
500
+ def keyevent ( key , metastate = nil )
501
+ args = { keycode : key }
502
+ args [ :metastate ] = metastate if metastate
503
+ execute :keyevent , { } , args
504
+ end
505
+ end
506
+
507
+ add_endpoint_method ( :press_keycode ) do
508
+ def press_keycode ( key , metastate = nil )
509
+ args = { keycode : key }
510
+ args [ :metastate ] = metastate if metastate
511
+ execute :press_keycode , { } , args
512
+ end
513
+ end
514
+
515
+ add_endpoint_method ( :long_press_keycode ) do
516
+ def long_press_keycode ( key , metastate = nil )
517
+ args = { keycode : key }
518
+ args [ :metastate ] = metastate if metastate
519
+ execute :long_press_keycode , { } , args
520
+ end
521
+ end
522
+ end
523
+
501
524
def add_touch_actions
502
525
add_endpoint_method ( :touch_actions ) do
503
526
def touch_actions ( actions )
0 commit comments