Module: Selenium::WebDriver::KeyActions
- Included in:
- W3CActionBuilder
- Defined in:
- lib/selenium/webdriver/common/interactions/key_actions.rb
Instance Method Summary collapse
-
#key_down(*args, device: nil) ⇒ W3CActionBuilder
Performs a key press.
-
#key_up(*args, device: nil) ⇒ W3CActionBuilder
Performs a modifier key release.
-
#send_keys(*args, device: nil) ⇒ W3CActionBuilder
Sends keys to the active element.
Instance Method Details
#key_down(*args, device: nil) ⇒ W3CActionBuilder
Performs a key press. Does not release the key - subsequent interactions may assume it’s kept pressed. Note that the modifier key is never released implicitly - either #key_up(key) or #release_actions must be called to release the key.
43 44 45 |
# File 'lib/selenium/webdriver/common/interactions/key_actions.rb', line 43 def key_down(*args, device: nil) key_action(*args, action: :create_key_down, device: device) end |
#key_up(*args, device: nil) ⇒ W3CActionBuilder
Performs a modifier key release. Releasing a non-depressed modifier key will yield undefined behaviour.
66 67 68 |
# File 'lib/selenium/webdriver/common/interactions/key_actions.rb', line 66 def key_up(*args, device: nil) key_action(*args, action: :create_key_up, device: device) end |
#send_keys(*args, device: nil) ⇒ W3CActionBuilder
Sends keys to the active element. This differs from calling Element#send_keys(keys) on the active element in two ways:
-
The modifier keys included in this call are not released.
-
There is no attempt to re-focus the element - so send_keys(:tab) for switching elements should work.
92 93 94 95 96 97 98 99 |
# File 'lib/selenium/webdriver/common/interactions/key_actions.rb', line 92 def send_keys(*args, device: nil) click(args.shift) if args.first.is_a? Element args.map { |x| x.is_a?(String) ? x.chars : x }.flatten.each do |arg| key_down(arg, device: device) key_up(arg, device: device) end self end |