Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
ctx = (
pytest.raises(OperationNotSupported)
if isinstance(session, CompatSession)
else null_context()
)
with ctx:
actions = chain(
mouse.move_to(canvas),
mouse.down() & keyboard.down("a"),
mouse.move_by(10, 20) & keyboard.up("a"),
mouse.up(),
)
await check(actions, "")
actions = chain(
mouse.move_to(canvas),
mouse.down(),
mouse.move_by(10, 20) & keyboard.down("a"),
mouse.up(),
keyboard.up("a"),
)
await check(actions, "a" * 30)
actions = chain(
mouse.move_to(canvas),
mouse.down() & keyboard.down("a"),
mouse.move_by(10, 20) & keyboard.up("a"),
mouse.up(),
)
await check(actions, "")
mouse = Mouse()
keyboard = Keyboard()
canvas = await session.get_element('#canvas')
# keyboard actions cannot be emulated in non-w3c drivers
ctx = (
pytest.raises(OperationNotSupported)
if
isinstance(session, CompatSession)
else
null_context()
)
with ctx:
actions = chain(
mouse.move_to(canvas),
mouse.down() & keyboard.down('a'),
mouse.move_by(10, 20) & keyboard.up('a'),
mouse.up()
)
await check(actions, '')
actions = chain(
mouse.move_to(canvas),
mouse.down(),
mouse.move_by(10, 20) & keyboard.down('a'),
mouse.up(),
keyboard.up('a'),
)
await check(actions, 'a' * 30)
if
isinstance(session, CompatSession)
else
null_context()
)
with ctx:
actions = chain(
mouse.move_to(canvas),
mouse.down() & keyboard.down('a'),
mouse.move_by(10, 20) & keyboard.up('a'),
mouse.up()
)
await check(actions, '')
actions = chain(
mouse.move_to(canvas),
mouse.down(),
mouse.move_by(10, 20) & keyboard.down('a'),
mouse.up(),
keyboard.up('a'),
)
await check(actions, 'a' * 30)
actions = chain(
mouse.move_to(canvas),
mouse.down() & keyboard.down('a'),
mouse.move_by(10, 20) & keyboard.up('a'),
mouse.up()
)
await check(actions, '')
def test_drag_n_drop():
mouse = Mouse()
actions = chain(
mouse.move_to(ELEMENT_ONE), mouse.down(), mouse.move_by(100, 100), mouse.up()
)
assert actions == {
"actions": [
{
"parameters": {"pointerType": "mouse"},
"id": "pointer1",
"type": "pointer",
"actions": [
{
"type": "pointerMove",
"duration": 250,
"origin": {constants.WEB_ELEMENT: "1"},
"x": 0,
"y": 0,
},
def test_two_finger():
finger1 = Touch("pointer1")
finger2 = Touch("pointer2")
actions = chain(
finger1.move_to(ELEMENT_ONE) & finger2.move_to(ELEMENT_TWO),
finger1.down() & finger2.down(),
finger2.move_to(ELEMENT_TRI),
finger1.up() & finger2.up(),
)
devices = list(sorted(actions["actions"], key=itemgetter("id")))
assert devices == [
{
"parameters": {"pointerType": "touch"},
"id": "pointer1",
"type": "pointer",
"actions": [
{
"type": "pointerMove",
"duration": 250,
"origin": {constants.WEB_ELEMENT: "1"},
mouse.down() & keyboard.down("a"),
mouse.move_by(10, 20) & keyboard.up("a"),
mouse.up(),
)
await check(actions, "")
actions = chain(
mouse.move_to(canvas),
mouse.down(),
mouse.move_by(10, 20) & keyboard.down("a"),
mouse.up(),
keyboard.up("a"),
)
await check(actions, "a" * 30)
actions = chain(
mouse.move_to(canvas),
mouse.down() & keyboard.down("a"),
mouse.move_by(10, 20) & keyboard.up("a"),
mouse.up(),
)
await check(actions, "")
async def drag_and_drop(
session: Session, source_element: Element, x_offset: int, y_offset: int
):
mouse = Mouse()
actions = chain(
mouse.move_to(source_element),
mouse.down(),
mouse.move_by(x_offset, y_offset),
mouse.up(),
)
await session.perform_actions(actions)