// Package accessibility provides the Chrome Debugging Protocol // commands, types, and events for the Chrome Accessibility domain. // // Generated by the chromedp-gen command. package accessibility // AUTOGENERATED. DO NOT EDIT. import ( "context" cdp "github.com/knq/chromedp/cdp" "github.com/mailru/easyjson" ) // GetPartialAXTreeParams fetches the accessibility node and partial // accessibility tree for this DOM node, if it exists. type GetPartialAXTreeParams struct { NodeID cdp.NodeID `json:"nodeId"` // ID of node to get the partial accessibility tree for. FetchRelatives bool `json:"fetchRelatives,omitempty"` // Whether to fetch this nodes ancestors, siblings and children. Defaults to true. } // GetPartialAXTree fetches the accessibility node and partial accessibility // tree for this DOM node, if it exists. // // parameters: // nodeID - ID of node to get the partial accessibility tree for. func GetPartialAXTree(nodeID cdp.NodeID) *GetPartialAXTreeParams { return &GetPartialAXTreeParams{ NodeID: nodeID, } } // WithFetchRelatives whether to fetch this nodes ancestors, siblings and // children. Defaults to true. func (p GetPartialAXTreeParams) WithFetchRelatives(fetchRelatives bool) *GetPartialAXTreeParams { p.FetchRelatives = fetchRelatives return &p } // GetPartialAXTreeReturns return values. type GetPartialAXTreeReturns struct { Nodes []*AXNode `json:"nodes,omitempty"` // The Accessibility.AXNode for this DOM node, if it exists, plus its ancestors, siblings and children, if requested. } // Do executes Accessibility.getPartialAXTree. // // returns: // nodes - The Accessibility.AXNode for this DOM node, if it exists, plus its ancestors, siblings and children, if requested. func (p *GetPartialAXTreeParams) Do(ctxt context.Context, h cdp.FrameHandler) (nodes []*AXNode, err error) { if ctxt == nil { ctxt = context.Background() } // marshal buf, err := easyjson.Marshal(p) if err != nil { return nil, err } // execute ch := h.Execute(ctxt, cdp.CommandAccessibilityGetPartialAXTree, easyjson.RawMessage(buf)) // read response select { case res := <-ch: if res == nil { return nil, cdp.ErrChannelClosed } switch v := res.(type) { case easyjson.RawMessage: // unmarshal var r GetPartialAXTreeReturns err = easyjson.Unmarshal(v, &r) if err != nil { return nil, cdp.ErrInvalidResult } return r.Nodes, nil case error: return nil, v } case <-ctxt.Done(): return nil, cdp.ErrContextDone } return nil, cdp.ErrUnknownResult }