25 lines
700 B
Python
25 lines
700 B
Python
|
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))
|