From 3ea46b93cfe436dabe84d6d91e728226ba86210e Mon Sep 17 00:00:00 2001 From: Suchintan Date: Fri, 12 Apr 2024 23:00:54 -0400 Subject: [PATCH] Revert "Don't interact with fields that are already filled in" (#182) --- skyvern/forge/agent.py | 1 - skyvern/forge/sdk/workflow/models/block.py | 2 +- skyvern/webeye/actions/handler.py | 8 -------- skyvern/webeye/scraper/domUtils.js | 7 ++++--- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/skyvern/forge/agent.py b/skyvern/forge/agent.py index 6bf19314..5018dbde 100644 --- a/skyvern/forge/agent.py +++ b/skyvern/forge/agent.py @@ -604,7 +604,6 @@ class ForgeAgent(Agent): for window_step in window_steps: if window_step.output and window_step.output.action_results: action_results.extend(window_step.output.action_results) - action_results_str = json.dumps([action_result.model_dump() for action_result in action_results]) # Generate the extract action prompt navigation_goal = task.navigation_goal diff --git a/skyvern/forge/sdk/workflow/models/block.py b/skyvern/forge/sdk/workflow/models/block.py index e17e6950..e841545d 100644 --- a/skyvern/forge/sdk/workflow/models/block.py +++ b/skyvern/forge/sdk/workflow/models/block.py @@ -227,7 +227,7 @@ class TaskBlock(Block): raise TaskNotFound(task.task_id) if not updated_task.status.is_final(): raise UnexpectedTaskStatus(task_id=updated_task.task_id, status=updated_task.status) - if updated_task.status == TaskStatus.completed or updated_task.status == TaskStatus.terminated: + if updated_task.status == TaskStatus.completed: LOG.info( f"Task completed", task_id=updated_task.task_id, diff --git a/skyvern/webeye/actions/handler.py b/skyvern/webeye/actions/handler.py index c4ccacdb..7c7fe80d 100644 --- a/skyvern/webeye/actions/handler.py +++ b/skyvern/webeye/actions/handler.py @@ -143,11 +143,6 @@ async def handle_input_text_action( ) -> list[ActionResult]: xpath = await validate_actions_in_dom(action, page, scraped_page) locator = page.locator(f"xpath={xpath}") - - current_text = await locator.input_value() - if current_text == action.text: - return [ActionSuccess()] - await locator.clear() text = get_actual_value_of_parameter_if_secret(task, action.text) await locator.fill(text, timeout=SettingsManager.get_settings().BROWSER_ACTION_TIMEOUT_MS) @@ -318,9 +313,6 @@ async def handle_select_option_action( ) return [ActionFailure(Exception(f"Cannot handle SelectOptionAction on a non-listbox element"))] - current_text = await locator.input_value() - if current_text == action.option.label: - return ActionSuccess() try: # First click by label (if it matches) await page.click(f"xpath={xpath}", timeout=SettingsManager.get_settings().BROWSER_ACTION_TIMEOUT_MS) diff --git a/skyvern/webeye/scraper/domUtils.js b/skyvern/webeye/scraper/domUtils.js index 1f595940..6dfcaa3c 100644 --- a/skyvern/webeye/scraper/domUtils.js +++ b/skyvern/webeye/scraper/domUtils.js @@ -505,9 +505,6 @@ function buildTreeFromBody() { const selectContainers = document.querySelectorAll(".select2-container"); selectContainers.forEach((element) => { - // hide the select2 container - element.style.display = "none"; - // search select in previous let _pre = element.previousElementSibling; while (_pre) { @@ -516,6 +513,8 @@ function buildTreeFromBody() { _pre.style.display === "none" ) { _pre.style.removeProperty("display"); + // only hide the select2 container when an alternative select found + element.style.display = "none"; return; } _pre = _pre.previousElementSibling; @@ -529,6 +528,8 @@ function buildTreeFromBody() { _next.style.display === "none" ) { _next.style.removeProperty("display"); + // only hide the select2 container when an alternative select found + element.style.display = "none"; return; } _next = _next.nextElementSibling;