feat: rm selector hierarchy for non unique selectors

This commit is contained in:
RohitR311
2025-05-09 23:36:41 +05:30
parent 4d102f1725
commit d9ac918317

View File

@@ -2299,7 +2299,12 @@ export const getNonUniqueSelectors = async (page: Page, coordinates: Coordinates
return selectorParts.join(contextPath[0].type === 'shadow' ? ' >> ' : ' :>> '); return selectorParts.join(contextPath[0].type === 'shadow' ? ' >> ' : ' :>> ');
} }
// Regular DOM path generation const elementSelector = getNonUniqueSelector(element);
if (elementSelector.includes('.') && elementSelector.split('.').length > 1) {
return elementSelector;
}
const path: string[] = []; const path: string[] = [];
let currentElement = element; let currentElement = element;
const MAX_DEPTH = 2; const MAX_DEPTH = 2;
@@ -2656,7 +2661,12 @@ export const getNonUniqueSelectors = async (page: Page, coordinates: Coordinates
return selectorParts.join(contextPath[0].type === 'shadow' ? ' >> ' : ' :>> '); return selectorParts.join(contextPath[0].type === 'shadow' ? ' >> ' : ' :>> ');
} }
// Regular DOM path generation const elementSelector = getNonUniqueSelector(element);
if (elementSelector.includes('.') && elementSelector.split('.').length > 1) {
return elementSelector;
}
const path: string[] = []; const path: string[] = [];
let currentElement = element; let currentElement = element;
const MAX_DEPTH = 2; const MAX_DEPTH = 2;
@@ -2753,12 +2763,14 @@ export const getChildSelectors = async (page: Page, parentSelector: string): Pro
const frameElement = ownerDocument?.defaultView?.frameElement; const frameElement = ownerDocument?.defaultView?.frameElement;
if (frameElement) { if (frameElement) {
const frameSelector = getNonUniqueSelector(frameElement as HTMLElement); const frameSelector = getNonUniqueSelector(frameElement as HTMLElement);
const isFrame = frameElement.tagName === 'FRAME';
// Use the appropriate delimiter based on whether it's a frame or iframe // Use the appropriate delimiter based on whether it's a frame or iframe
return `${frameSelector} :>> ${elementSelector}`; return `${frameSelector} :>> ${elementSelector}`;
} }
// Regular DOM context if (elementSelector.includes('.') && elementSelector.split('.').length > 1) {
return elementSelector;
}
const parentSelector = getNonUniqueSelector(element.parentElement); const parentSelector = getNonUniqueSelector(element.parentElement);
return `${parentSelector} > ${elementSelector}`; return `${parentSelector} > ${elementSelector}`;
} }