12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package lxrod
- import "github.com/go-rod/rod"
- // RaceVisibleElement 创建用于使用 css 选择器查询可见元素的 race 分支。
- func RaceVisibleElement(r *rod.RaceContext, selector string) *rod.RaceContext {
- return r.ElementFunc(VisibleElement(selector))
- }
- // RaceVisibleElementX 创建用于使用 xPath 查询可见元素的 race 分支。
- func RaceVisibleElementX(r *rod.RaceContext, xPath string) *rod.RaceContext {
- return r.ElementFunc(VisibleElementX(xPath))
- }
- // VisibleElement 是用于 [rod.RaceContext.ElementFunc] 的函数,用于使用 css 选择器查找可见元素。
- func VisibleElement(selector string) func(*rod.Page) (*rod.Element, error) {
- return func(p *rod.Page) (*rod.Element, error) {
- e, err := p.Element(selector)
- if err != nil {
- return nil, err
- }
- ok, err := e.Visible()
- if err != nil {
- return nil, err
- }
- if !ok {
- return nil, &rod.ElementNotFoundError{}
- }
- return e, nil
- }
- }
- // VisibleElementX 是用于 [rod.RaceContext.ElementFunc] 的函数,用于使用 xPath 查找可见元素。
- func VisibleElementX(xPath string) func(*rod.Page) (*rod.Element, error) {
- return func(p *rod.Page) (*rod.Element, error) {
- e, err := p.ElementX(xPath)
- if err != nil {
- return nil, err
- }
- ok, err := e.Visible()
- if err != nil {
- return nil, err
- }
- if !ok {
- return nil, &rod.ElementNotFoundError{}
- }
- return e, nil
- }
- }
|