@@ -643,26 +643,23 @@ func (d *Driver) elementInfo(elem *rod.Element) *core.ElementInfo {
643643 info .Visible = visible
644644 }
645645
646- disabled , err := elem .Attribute ("disabled" )
647- if err != nil {
648- log .Printf ("[browser] elementInfo: Attribute(disabled) failed: %v" , err )
649- } else if disabled != nil {
650- info .Enabled = false
651- }
646+ // Skip attribute lookups for text nodes
647+ tagName , err := elem .Eval (`() => this.tagName` )
648+ if err == nil && tagName .Value .Str () != "" {
649+ info .Class = tagName .Value .Str ()
652650
653- if checked , err := elem .Property ("checked" ); err == nil {
654- info .Checked = checked .Bool ()
655- }
651+ disabled , err := elem .Property ("disabled" )
652+ if err == nil && disabled .Bool () {
653+ info .Enabled = false
654+ }
656655
657- ariaLabel , err := elem .Attribute ("aria-label" )
658- if err != nil {
659- log .Printf ("[browser] elementInfo: Attribute(aria-label) failed: %v" , err )
660- } else if ariaLabel != nil {
661- info .AccessibilityLabel = * ariaLabel
662- }
656+ if checked , err := elem .Property ("checked" ); err == nil {
657+ info .Checked = checked .Bool ()
658+ }
663659
664- if tagName , err := elem .Eval (`() => this.tagName` ); err == nil {
665- info .Class = tagName .Value .Str ()
660+ if ariaLabel , err := elem .Attribute ("aria-label" ); err == nil && ariaLabel != nil {
661+ info .AccessibilityLabel = * ariaLabel
662+ }
666663 }
667664
668665 return info
0 commit comments