status-desktop/test/e2e/gui/elements/qt/scroll.py

25 lines
700 B
Python
Raw Normal View History

import time
import allure
import driver
from .object import QObject
class Scroll(QObject):
@allure.step('Scroll vertical to object')
def vertical_scroll_to(self, element: QObject, timeout_sec: int = 5):
started_at = time.monotonic()
step = 10
direction = 1
while not element.is_visible:
step *= 2
direction *= -1
driver.flick(self.object, 0, step * direction)
time.sleep(0.1)
if time.monotonic() - started_at > timeout_sec:
raise LookupError(f'Object not found: {element}')
if hasattr(element.object, 'y'):
driver.flick(self.object, 0, int(element.object.y))