Module: Selenium::WebDriver::KeyActions
- Included in:
- ActionBuilder
- Defined in:
- lib/selenium/webdriver/common/interactions/key_actions.rb
Instance Method Summary collapse
-
#key_down(*args, device: nil) ⇒ ActionBuilder
Performs a key press.
-
#key_up(*args, device: nil) ⇒ ActionBuilder
Performs a key release.
-
#send_keys(*args, device: nil) ⇒ ActionBuilder
Sends keys to the active element.
Instance Method Details
#key_down(key, device: nil) ⇒ ActionBuilder #key_down(element, key, device: nil) ⇒ ActionBuilder
Performs a key press. Does not release the key - subsequent interactions may assume it’s kept pressed. Note that the key is never released implicitly - either ActionBuilder#key_up(key) or ActionBuilder#release_actions must be called to release the key.
47 48 49 |
# File 'lib/selenium/webdriver/common/interactions/key_actions.rb', line 47 def key_down(*args, device: nil) key_action(*args, action: :create_key_down, device: device) end |
#key_up(key, device: nil) ⇒ ActionBuilder #key_up(element, key, device: nil) ⇒ ActionBuilder
Performs a key release. Releasing a non-depressed key will yield undefined behaviour.
74 75 76 |
# File 'lib/selenium/webdriver/common/interactions/key_actions.rb', line 74 def key_up(*args, device: nil) key_action(*args, action: :create_key_up, device: device) end |
#send_keys(keys, device: nil) ⇒ ActionBuilder #send_keys(element, keys, device: nil) ⇒ ActionBuilder
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.
104 105 106 107 108 109 110 111 |
# File 'lib/selenium/webdriver/common/interactions/key_actions.rb', line 104 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 |