示例#1
0
文件: session.py 项目: ttm56p/arsenic
def _pointer_move(device, action):
    del action["duration"]
    url = "/moveto" if device["parameters"]["pointerType"] == "mouse" else "/touch/move"
    origin = action["origin"]
    if origin == "pointer":
        data = {"xoffset": action["x"], "yoffset": action["y"]}
    elif constants.WEB_ELEMENT in origin:
        data = {"element": origin[constants.WEB_ELEMENT]}
    else:
        raise OperationNotSupported(f"Cannot move using origin {origin}")
    return url, "POST", data
示例#2
0
def _pointer_move(device, action):
    del action['duration']
    url = '/moveto' if device['parameters'][
        'pointerType'] == 'mouse' else '/touch/move'
    origin = action['origin']
    if origin == 'pointer':
        data = {
            'xoffset': action['x'],
            'yoffset': action['y'],
        }
    elif constants.WEB_ELEMENT in origin:
        data = {
            'element': origin[constants.WEB_ELEMENT],
        }
    else:
        raise OperationNotSupported(f'Cannot move using origin {origin}')
    return url, 'POST', data
示例#3
0
文件: session.py 项目: ttm56p/arsenic
def transform_legacy_actions(
    devices: List[Dict[str, Any]]
) -> Iterator[Tuple[str, str, Dict[str, Any]]]:
    for legacy_action in get_legacy_actions(devices):
        device_type = legacy_action.device["type"]
        action_type = legacy_action.action["type"]
        device = {
            key: value for key, value in legacy_action.device.items() if key != "type"
        }
        action = {
            key: value for key, value in legacy_action.action.items() if key != "type"
        }
        try:
            handler = legacy_actions[(device_type, action_type)]
        except KeyError:
            raise OperationNotSupported(
                f"Unsupported action {action_type} for device_type {device_type}"
            )
        action = handler(device, action)
        if action is not None:
            yield action