fix scroll into view (#680)
This commit is contained in:
@@ -7,7 +7,7 @@ from enum import StrEnum
|
|||||||
from random import uniform
|
from random import uniform
|
||||||
|
|
||||||
import structlog
|
import structlog
|
||||||
from playwright.async_api import Frame, FrameLocator, Locator, Page
|
from playwright.async_api import Frame, FrameLocator, Locator, Page, TimeoutError
|
||||||
|
|
||||||
from skyvern.constants import SKYVERN_ID_ATTR
|
from skyvern.constants import SKYVERN_ID_ATTR
|
||||||
from skyvern.exceptions import (
|
from skyvern.exceptions import (
|
||||||
@@ -354,7 +354,15 @@ class SkyvernElement:
|
|||||||
if element_handler is None:
|
if element_handler is None:
|
||||||
LOG.warning("element handler is None. ", element_id=self.get_id())
|
LOG.warning("element handler is None. ", element_id=self.get_id())
|
||||||
return
|
return
|
||||||
await element_handler.scroll_into_view_if_needed(timeout=timeout)
|
try:
|
||||||
|
await element_handler.scroll_into_view_if_needed(timeout=timeout)
|
||||||
|
except TimeoutError:
|
||||||
|
LOG.info(
|
||||||
|
"Timeout to execute scrolling into view, try to re-focus to locate the element",
|
||||||
|
element_id=self.get_id(),
|
||||||
|
)
|
||||||
|
await self.get_frame().evaluate("(element) => element.blur()", element_handler)
|
||||||
|
await self.get_locator().focus(timeout=timeout)
|
||||||
await asyncio.sleep(2) # wait for scrolling into the target
|
await asyncio.sleep(2) # wait for scrolling into the target
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user