From 7e7f6dac482bb9319f917d9599ded71e87724a10 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Tue, 3 Sep 2024 03:31:33 +0530 Subject: [PATCH] feat: standalone functin to generate non unique selectors --- server/src/workflow-management/selector.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/src/workflow-management/selector.ts b/server/src/workflow-management/selector.ts index 10d0c894..5f896548 100644 --- a/server/src/workflow-management/selector.ts +++ b/server/src/workflow-management/selector.ts @@ -721,6 +721,23 @@ export const getSelectors = async (page: Page, coordinates: Coordinates) => { return null; }; +function generateNonUniqueSelector(element: HTMLElement): string { + let selector = element.tagName.toLowerCase(); + + if (element.className) { + const classes = element.className.split(/\s+/).filter((cls: string) => Boolean(cls)); + if (classes.length > 0) { + const validClasses = classes.filter((cls: string) => !cls.startsWith('!') && !cls.includes(':')); + if (validClasses.length > 0) { + selector += '.' + validClasses.map(cls => CSS.escape(cls)).join('.'); + } + } + } + + return selector; +} + + interface SelectorResult { generalSelector: string;