scroll the element into view when the blocking element is not interac… (#2093)
This commit is contained in:
@@ -1036,6 +1036,28 @@ async def handle_select_option_action(
|
|||||||
)
|
)
|
||||||
return await normal_select(action=action, skyvern_element=skyvern_element, dom=dom, task=task, step=step)
|
return await normal_select(action=action, skyvern_element=skyvern_element, dom=dom, task=task, step=step)
|
||||||
|
|
||||||
|
if not exist:
|
||||||
|
return await normal_select(action=action, skyvern_element=skyvern_element, dom=dom, task=task, step=step)
|
||||||
|
|
||||||
|
if blocking_element is None:
|
||||||
|
LOG.info(
|
||||||
|
"Try to scroll the element into view, then detecting the blocking element",
|
||||||
|
step_id=step.step_id,
|
||||||
|
)
|
||||||
|
try:
|
||||||
|
await skyvern_element.scroll_into_view()
|
||||||
|
blocking_element, exist = await skyvern_element.find_blocking_element(dom=dom)
|
||||||
|
except Exception:
|
||||||
|
LOG.warning(
|
||||||
|
"Failed to find the blocking element when scrolling into view, fallback to normal select",
|
||||||
|
action=action,
|
||||||
|
step_id=step.step_id,
|
||||||
|
exc_info=True,
|
||||||
|
)
|
||||||
|
return await normal_select(
|
||||||
|
action=action, skyvern_element=skyvern_element, dom=dom, task=task, step=step
|
||||||
|
)
|
||||||
|
|
||||||
if not exist or blocking_element is None:
|
if not exist or blocking_element is None:
|
||||||
return await normal_select(action=action, skyvern_element=skyvern_element, dom=dom, task=task, step=step)
|
return await normal_select(action=action, skyvern_element=skyvern_element, dom=dom, task=task, step=step)
|
||||||
LOG.info(
|
LOG.info(
|
||||||
|
|||||||
Reference in New Issue
Block a user