UNPKG

avi-analytics-sdk

Version:

An analytics SDK for capturing user interactions

28 lines (27 loc) 874 B
export function getCssSelector(element) { if (!(element instanceof Element)) return null; const paths = []; while (element && element.nodeType === Node.ELEMENT_NODE) { let selector = element.nodeName.toLowerCase(); if (element.id) { selector += `#${element.id}`; paths.unshift(selector); break; } else { let sibling = element; let siblingIndex = 1; while ((sibling = sibling.previousElementSibling)) { if (sibling.nodeName.toLowerCase() === selector) siblingIndex++; } if (siblingIndex > 1) { selector += `:nth-of-type(${siblingIndex})`; } } paths.unshift(selector); element = element.parentElement; } return paths.join(" > "); }