mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-10-22 02:25:05 +00:00
47 lines
1.5 KiB
ReStructuredText
47 lines
1.5 KiB
ReStructuredText
Actions
|
|
=======
|
|
|
|
.. py:currentmodule:: marionette
|
|
|
|
Action Sequences
|
|
----------------
|
|
|
|
:class:`Actions` are designed as a way to simulate user input as closely as possible
|
|
on a touch device like a smart phone. A common operation is to tap the screen
|
|
and drag your finger to another part of the screen and lift it off.
|
|
|
|
This can be simulated using an Action::
|
|
|
|
from marionette import Actions
|
|
|
|
start_element = marionette.find_element('id', 'start')
|
|
end_element = marionette.find_element('id', 'end')
|
|
|
|
action = Actions(marionette)
|
|
action.press(start_element).wait(1).move(end_element).release()
|
|
action.perform()
|
|
|
|
This will simulate pressing an element, waiting for one second, moving the
|
|
finger over to another element and then lifting the finger off the screen. The
|
|
wait is optional in this case, but can be useful for simulating delays typical
|
|
to a users behaviour.
|
|
|
|
Multi-Action Sequences
|
|
----------------------
|
|
|
|
Sometimes it may be necessary to simulate multiple actions at the same time.
|
|
For example a user may be dragging one finger while tapping another. This is
|
|
where :class:`MultiActions` come in. MultiActions are simply a way of combining
|
|
two or more actions together and performing them all at the same time::
|
|
|
|
action1 = Actions(marionette)
|
|
action1.press(start_element).move(end_element).release()
|
|
|
|
action2 = Actions(marionette)
|
|
action2.press(another_element).wait(1).release()
|
|
|
|
multi = MultiActions(marionette)
|
|
multi.add(action1)
|
|
multi.add(action2)
|
|
multi.perform()
|