lwb/element.go

33 lines
508 B
Go
Raw Normal View History

2024-12-13 21:33:27 +01:00
package lwb
import (
"errors"
"strings"
"golang.org/x/net/html"
)
type Element struct {
node *html.Node
browser *Browser
}
var ErrorNotClickable = errors.New("element is not clickable")
func (self *Element) Click() error {
for e := self.node; e != nil; e = e.Parent {
if e.Type != html.ElementNode {
continue
}
if strings.ToLower(e.Data) == "a" {
for _, a := range e.Attr {
if a.Key == "href" {
return self.browser.Get(a.Val)
}
}
}
}
return ErrorNotClickable
}