From bce6b6ae32691c3098ff8197875c179438013a9c Mon Sep 17 00:00:00 2001 From: Kerem Yilmaz Date: Wed, 12 Jun 2024 16:14:31 -0700 Subject: [PATCH] SelectOption is only invalid if label, value, and index are missing (#463) --- skyvern/webeye/actions/actions.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/skyvern/webeye/actions/actions.py b/skyvern/webeye/actions/actions.py index 0fb930fd..efe421b4 100644 --- a/skyvern/webeye/actions/actions.py +++ b/skyvern/webeye/actions/actions.py @@ -211,12 +211,20 @@ def parse_action(action: Dict[str, Any], data_extraction_goal: str | None = None ) if action_type == ActionType.SELECT_OPTION: + option = action["option"] + if option is None: + raise ValidationError("SelectOptionAction requires an 'option' field") + label = option.get("label") + value = option.get("value") + index = option.get("index") + if label is None and value is None and index is None: + raise ValidationError("At least one of 'label', 'value', or 'index' must be provided for a SelectOption") return SelectOptionAction( element_id=element_id, option=SelectOption( - label=action["option"]["label"], - value=action["option"]["value"], - index=action["option"]["index"], + label=label, + value=value, + index=index, ), reasoning=reasoning, confidence_float=confidence_float,