Path: blob/trunk/py/selenium/webdriver/common/actions/interaction.py
1864 views
# Licensed to the Software Freedom Conservancy (SFC) under one1# or more contributor license agreements. See the NOTICE file2# distributed with this work for additional information3# regarding copyright ownership. The SFC licenses this file4# to you under the Apache License, Version 2.0 (the5# "License"); you may not use this file except in compliance6# with the License. You may obtain a copy of the License at7#8# http://www.apache.org/licenses/LICENSE-2.09#10# Unless required by applicable law or agreed to in writing,11# software distributed under the License is distributed on an12# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY13# KIND, either express or implied. See the License for the14# specific language governing permissions and limitations15# under the License.16from typing import Union1718KEY = "key"19POINTER = "pointer"20NONE = "none"21WHEEL = "wheel"22SOURCE_TYPES = {KEY, POINTER, NONE}2324POINTER_MOUSE = "mouse"25POINTER_TOUCH = "touch"26POINTER_PEN = "pen"2728POINTER_KINDS = {POINTER_MOUSE, POINTER_TOUCH, POINTER_PEN}293031class Interaction:32PAUSE = "pause"3334def __init__(self, source: str) -> None:35self.source = source363738class Pause(Interaction):39def __init__(self, source, duration: float = 0) -> None:40super().__init__(source)41self.duration = duration4243def encode(self) -> dict[str, Union[str, int]]:44return {"type": self.PAUSE, "duration": int(self.duration * 1000)}454647