Module: Selenium::WebDriver::PointerActions
- Included in:
- ActionBuilder
- Defined in:
- lib/selenium/webdriver/common/interactions/pointer_actions.rb
Instance Attribute Summary collapse
-
#default_move_duration ⇒ Object
By default this is set to 250ms in the ActionBuilder constructor It can be overridden with default_move_duration=.
Instance Method Summary collapse
-
#click(element = nil, button: nil, device: nil) ⇒ ActionBuilder
Clicks in the middle of the given element.
-
#click_and_hold(element = nil, button: nil, device: nil) ⇒ ActionBuilder
Clicks (without releasing) in the middle of the given element.
-
#context_click(element = nil, device: nil) ⇒ ActionBuilder
Performs a context-click at middle of the given element.
-
#double_click(element = nil, device: nil) ⇒ ActionBuilder
Performs a double-click at middle of the given element.
-
#drag_and_drop(source, target, device: nil) ⇒ ActionBuilder
A convenience method that performs click-and-hold at the location of the source element, moves to the location of the target element, then releases the mouse.
-
#drag_and_drop_by(source, right_by, down_by, device: nil) ⇒ ActionBuilder
A convenience method that performs click-and-hold at the location of the source element, moves by a given offset, then releases the mouse.
-
#move_by(right_by, down_by, device: nil, duration: default_move_duration, **opts) ⇒ ActionBuilder
Moves the pointer from its current position by the given offset.
-
#move_to(element, right_by = nil, down_by = nil, **opts) ⇒ ActionBuilder
Moves the pointer to the in-view center point of the given element.
-
#move_to_location(x, y, device: nil, duration: default_move_duration, **opts) ⇒ ActionBuilder
Moves the pointer to a given location in the viewport.
-
#pointer_down(button = :left, device: nil, **opts) ⇒ ActionBuilder
Presses (without releasing) at the current location of the PointerInput device.
-
#pointer_up(button = :left, device: nil, **opts) ⇒ ActionBuilder
Releases the pressed mouse button at the current mouse location of the PointerInput device.
-
#release(button: nil, device: nil) ⇒ ActionBuilder
Releases the depressed left mouse button at the current mouse location.
Instance Attribute Details
#default_move_duration ⇒ Object
By default this is set to 250ms in the ActionBuilder constructor It can be overridden with default_move_duration=
30 31 32 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 30 def default_move_duration @default_move_duration ||= @duration / 1000.0 # convert ms to seconds end |
Instance Method Details
#click(element = nil, button: nil, device: nil) ⇒ ActionBuilder
Clicks in the middle of the given element. Equivalent to:
driver.action.move_to(element).click
When no element is passed, the current mouse position will be clicked.
226 227 228 229 230 231 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 226 def click(element = nil, button: nil, device: nil) move_to(element, device: device) if element pointer_down( || :left, device: device) pointer_up( || :left, device: device) self end |
#click_and_hold(element = nil, button: nil, device: nil) ⇒ ActionBuilder
Clicks (without releasing) in the middle of the given element. This is equivalent to:
driver.action.move_to(element).click_and_hold
180 181 182 183 184 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 180 def click_and_hold(element = nil, button: nil, device: nil) move_to(element, device: device) if element pointer_down( || :left, device: device) self end |
#context_click(element = nil, device: nil) ⇒ ActionBuilder
Performs a context-click at middle of the given element. First performs a move_to to the location of the element.
When no element is passed, the current mouse position will be context-clicked.
283 284 285 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 283 def context_click(element = nil, device: nil) click(element, button: :right, device: device) end |
#double_click(element = nil, device: nil) ⇒ ActionBuilder
Performs a double-click at middle of the given element. Equivalent to:
driver.action.move_to(element).double_click
When no element is passed, the current mouse position will be double-clicked.
255 256 257 258 259 260 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 255 def double_click(element = nil, device: nil) move_to(element, device: device) if element click(device: device) click(device: device) self end |
#drag_and_drop(source, target, device: nil) ⇒ ActionBuilder
A convenience method that performs click-and-hold at the location of the source element, moves to the location of the target element, then releases the mouse.
306 307 308 309 310 311 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 306 def drag_and_drop(source, target, device: nil) click_and_hold(source, device: device) move_to(target, device: device) release(device: device) self end |
#drag_and_drop_by(source, right_by, down_by, device: nil) ⇒ ActionBuilder
A convenience method that performs click-and-hold at the location of the source element, moves by a given offset, then releases the mouse.
330 331 332 333 334 335 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 330 def drag_and_drop_by(source, right_by, down_by, device: nil) click_and_hold(source, device: device) move_by(right_by, down_by, device: device) release(device: device) self end |
#move_by(right_by, down_by, device: nil, duration: default_move_duration, **opts) ⇒ ActionBuilder
Moves the pointer from its current position by the given offset.
The viewport is not scrolled if the coordinates provided are outside the viewport. MoveTargetOutOfBoundsError will be raised if the offsets are outside the viewport
125 126 127 128 129 130 131 132 133 134 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 125 def move_by(right_by, down_by, device: nil, duration: default_move_duration, **opts) pointer = pointer_input(device) pointer.create_pointer_move(duration: duration, x: Integer(right_by), y: Integer(down_by), origin: Interactions::PointerMove::POINTER, **opts) tick(pointer) self end |
#move_to(element, right_by = nil, down_by = nil, **opts) ⇒ ActionBuilder
Moves the pointer to the in-view center point of the given element. Then the pointer is moved to optional offset coordinates.
The element is not scrolled into view. MoveTargetOutOfBoundsError will be raised if element with offset is outside the viewport
When using offsets, both coordinates need to be passed.
97 98 99 100 101 102 103 104 105 106 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 97 def move_to(element, right_by = nil, down_by = nil, **opts) pointer = pointer_input(opts.delete(:device)) pointer.create_pointer_move(duration: opts.delete(:duration) || default_move_duration, x: right_by || 0, y: down_by || 0, origin: element, **opts) tick(pointer) self end |
#move_to_location(x, y, device: nil, duration: default_move_duration, **opts) ⇒ ActionBuilder
Moves the pointer to a given location in the viewport.
The viewport is not scrolled if the coordinates provided are outside the viewport. MoveTargetOutOfBoundsError will be raised if the offsets are outside the viewport
153 154 155 156 157 158 159 160 161 162 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 153 def move_to_location(x, y, device: nil, duration: default_move_duration, **opts) pointer = pointer_input(device) pointer.create_pointer_move(duration: duration, x: Integer(x), y: Integer(y), origin: Interactions::PointerMove::VIEWPORT, **opts) tick(pointer) self end |
#pointer_down(button = :left, device: nil, **opts) ⇒ ActionBuilder
Presses (without releasing) at the current location of the PointerInput device. This is equivalent to:
driver.action.click_and_hold(nil)
49 50 51 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 49 def pointer_down( = :left, device: nil, **opts) (, :create_pointer_down, device: device, **opts) end |
#pointer_up(button = :left, device: nil, **opts) ⇒ ActionBuilder
Releases the pressed mouse button at the current mouse location of the PointerInput device.
66 67 68 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 66 def pointer_up( = :left, device: nil, **opts) (, :create_pointer_up, device: device, **opts) end |
#release(button: nil, device: nil) ⇒ ActionBuilder
Releases the depressed left mouse button at the current mouse location.
199 200 201 202 |
# File 'lib/selenium/webdriver/common/interactions/pointer_actions.rb', line 199 def release(button: nil, device: nil) pointer_up( || :left, device: device) self end |