File tree Expand file tree Collapse file tree 1 file changed +27
-4
lines changed
Expand file tree Collapse file tree 1 file changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -12,10 +12,33 @@ export default function getSelector(
1212 attr : ( name ) => false , // ignore all attributes
1313 } ) ;
1414 } catch ( e ) {
15- selector =
16- element . tagName . toLowerCase ( ) +
17- ( element . id ? `#${ element . id } ` : "" ) +
18- ( element . className ? `.${ element . className } ` : "" ) ;
15+ selector = getFallbackSelector ( element ) ;
1916 }
2017 return selector ;
2118}
19+
20+ function getFallbackSelector ( element : Element ) : string {
21+ const tagName = element . tagName . toLowerCase ( ) ;
22+ const id = element . id ? `#${ CSS . escape ( element . id ) } ` : "" ;
23+
24+ // Handle both string className (HTML elements) and SVGAnimatedString (SVG elements)
25+ let classes = "" ;
26+ if ( element . className ) {
27+ let classNameStr = "" ;
28+ if ( typeof element . className === "string" ) {
29+ classNameStr = element . className ;
30+ } else if ( typeof element . className === "object" && "baseVal" in element . className ) {
31+ // SVG element with SVGAnimatedString
32+ classNameStr = ( element . className as any ) . baseVal ;
33+ }
34+
35+ classes = classNameStr
36+ ? classNameStr
37+ . split ( ' ' )
38+ . filter ( Boolean )
39+ . map ( c => `.${ CSS . escape ( c ) } ` )
40+ . join ( '' )
41+ : "" ;
42+ }
43+ return tagName + id + classes ;
44+ }
You can’t perform that action at this time.
0 commit comments