From 31a79a1313524ff3858efb89337d8f90d6310912 Mon Sep 17 00:00:00 2001 From: LawyZheng Date: Thu, 20 Nov 2025 00:04:39 +0800 Subject: [PATCH] use value of the optiona when the content is empty (#4035) --- skyvern/webeye/scraper/domUtils.js | 1 + skyvern/webeye/scraper/scraper.py | 2 ++ skyvern/webeye/utils/dom.py | 1 + 3 files changed, 4 insertions(+) diff --git a/skyvern/webeye/scraper/domUtils.js b/skyvern/webeye/scraper/domUtils.js index 5f5588d8..9edc7791 100644 --- a/skyvern/webeye/scraper/domUtils.js +++ b/skyvern/webeye/scraper/domUtils.js @@ -1380,6 +1380,7 @@ function getSelectOptions(element) { selectOptions.push({ optionIndex: option.index, text: removeMultipleSpaces(option.textContent), + value: removeMultipleSpaces(option.value), }); } diff --git a/skyvern/webeye/scraper/scraper.py b/skyvern/webeye/scraper/scraper.py index 329c2fe7..e59904ac 100644 --- a/skyvern/webeye/scraper/scraper.py +++ b/skyvern/webeye/scraper/scraper.py @@ -152,6 +152,8 @@ def json_to_html(element: dict, need_skyvern_attrs: bool = True) -> str: # build option HTML option_html = "".join( f'' + if option.get("text") + else f'' for option in element.get("options", []) ) diff --git a/skyvern/webeye/utils/dom.py b/skyvern/webeye/utils/dom.py index e7070f93..0552ce7e 100644 --- a/skyvern/webeye/utils/dom.py +++ b/skyvern/webeye/utils/dom.py @@ -85,6 +85,7 @@ RAW_INPUT_NAME_VALUE = ["name", "email", "username", "password", "phone"] class SkyvernOptionType(typing.TypedDict): optionIndex: int text: str + value: str class SkyvernElement: