From 588dbf986d116fdfb8d999e15cb71b9ece52e49b Mon Sep 17 00:00:00 2001 From: LawyZheng Date: Tue, 13 Aug 2024 09:21:19 +0800 Subject: [PATCH] extend select2 (#699) --- skyvern/webeye/scraper/domUtils.js | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/skyvern/webeye/scraper/domUtils.js b/skyvern/webeye/scraper/domUtils.js index f2d15ad4..687ee720 100644 --- a/skyvern/webeye/scraper/domUtils.js +++ b/skyvern/webeye/scraper/domUtils.js @@ -219,7 +219,10 @@ function isElementVisible(element) { ) return element.parentElement && isElementVisible(element.parentElement); - if (element.className.toString().includes("select2-offscreen")) { + if ( + element.className.toString().includes("select2-offscreen") || + element.className.toString().includes("select2-hidden") + ) { return false; } @@ -468,10 +471,21 @@ const isComboboxDropdown = (element) => { }; const isSelect2Dropdown = (element) => { - return ( - element.tagName.toLowerCase() === "a" && - element.className.toString().includes("select2-choice") - ); + const tagName = element.tagName.toLowerCase(); + const className = element.className.toString(); + const role = element.getAttribute("role") + ? element.getAttribute("role").toLowerCase() + : ""; + + if (tagName === "a") { + return className.includes("select2-choice"); + } + + if (tagName === "span") { + return className.includes("select2-selection") && role === "combobox"; + } + + return false; }; const isSelect2MultiChoice = (element) => {