How to use the arsenic.actions.chain function in arsenic

To help you get started, we’ve selected a few arsenic examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github HDE / arsenic / tests / test_real_browsers.py View on Github external
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, "")
github HDE / arsenic / tests / test_real_browsers.py View on Github external
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)
github HDE / arsenic / tests / test_real_browsers.py View on Github external
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, '')
github HDE / arsenic / tests / test_actions.py View on Github external
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,
                    },
github HDE / arsenic / tests / test_actions.py View on Github external
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"},
github HDE / arsenic / tests / test_real_browsers.py View on Github external
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, "")
github HDE / arsenic / docs / howto / action_chains.py View on Github external
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)