From 5ca2c45be1b50ae1b7d02c219a493ce7d3f6d586 Mon Sep 17 00:00:00 2001 From: LawyZheng Date: Fri, 10 Jan 2025 01:44:20 +0800 Subject: [PATCH] fix selection issue (#1526) --- skyvern/webeye/actions/handler.py | 36 +++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/skyvern/webeye/actions/handler.py b/skyvern/webeye/actions/handler.py index 9aacd240..1bd6500f 100644 --- a/skyvern/webeye/actions/handler.py +++ b/skyvern/webeye/actions/handler.py @@ -984,7 +984,8 @@ async def handle_select_option_action( element_id=selectable_child.get_id(), option=action.option, ) - return await handle_select_option_action(select_action, page, scraped_page, task, step) + action = select_action + skyvern_element = selectable_child # dynamically validate the attr, since it could change into enabled after the previous actions if await skyvern_element.is_disabled(dynamic=True): @@ -997,14 +998,40 @@ async def handle_select_option_action( ) return [ActionFailure(InteractWithDisabledElement(skyvern_element.get_id()))] - if tag_name == InteractiveElement.SELECT: + if skyvern_element.get_tag_name() == InteractiveElement.SELECT: LOG.info( "SelectOptionAction is on ", + task_id=task.task_id, + 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: + return await normal_select(action=action, skyvern_element=skyvern_element, dom=dom, task=task, step=step) + LOG.info( + "