From 46d9dad25b97bd9c6c5d3e8ff04443a191456801 Mon Sep 17 00:00:00 2001 From: LawyZheng Date: Tue, 12 Nov 2024 12:11:16 +0800 Subject: [PATCH] extend auto completion to support google address (#1174) --- skyvern/webeye/scraper/domUtils.js | 20 +++++++++++++++++++- skyvern/webeye/utils/dom.py | 4 ++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/skyvern/webeye/scraper/domUtils.js b/skyvern/webeye/scraper/domUtils.js index 10985ff3..d0e1a53a 100644 --- a/skyvern/webeye/scraper/domUtils.js +++ b/skyvern/webeye/scraper/domUtils.js @@ -476,6 +476,24 @@ function isInteractable(element) { return true; } + if ( + tagName === "li" && + element.className.toString().includes("ui-menu-item") + ) { + return true; + } + + // google map address auto complete + // https://developers.google.com/maps/documentation/javascript/place-autocomplete#style-autocomplete + // demo: https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete-addressform + if ( + tagName === "div" && + element.className.toString().includes("pac-item") && + element.closest('div[class*="pac-container"]') + ) { + return true; + } + if ( tagName === "div" && element.hasAttribute("aria-disabled") && @@ -484,7 +502,7 @@ function isInteractable(element) { return true; } - if (tagName === "span" && element.closest("div[id^='dropdown-container']")) { + if (tagName === "span" && element.closest('div[id*="dropdown-container"]')) { return true; } diff --git a/skyvern/webeye/utils/dom.py b/skyvern/webeye/utils/dom.py index 569888cd..b64988d3 100644 --- a/skyvern/webeye/utils/dom.py +++ b/skyvern/webeye/utils/dom.py @@ -143,6 +143,10 @@ class SkyvernElement: if autocomplete and autocomplete == "list": return True + class_name: str = await self.get_attr("class") + if "autocomplete-input" in class_name: + return True + return False async def is_custom_option(self) -> bool: