[Home](./index.md) > [puppeteer](./puppeteer.md) > [Protocol](./puppeteer.protocol.md) > [DOM](./puppeteer.protocol.dom.md) ## Protocol.DOM namespace This domain exposes DOM read/write operations. Each DOM Node is represented with its mirror object that has an `id`. This `id` can be used to get additional information on the Node, resolve it into the JavaScript object wrapper, etc. It is important that client receives DOM events only for the nodes that are known to the client. Backend keeps track of the nodes that were sent to the client and never sends the same node twice. It is client's responsibility to collect information about the nodes that were sent to the client.
Note that `iframe` owner elements will return corresponding document elements as their child nodes.
Signature: ```typescript export namespace DOM ``` ## Interfaces | Interface | Description | | --- | --- | | [AttributeModifiedEvent](./puppeteer.protocol.dom.attributemodifiedevent.md) | Fired whenElement
's attribute is modified. |
| [AttributeRemovedEvent](./puppeteer.protocol.dom.attributeremovedevent.md) | Fired when Element
's attribute is removed. |
| [BackendNode](./puppeteer.protocol.dom.backendnode.md) | Backend node with a friendly name. |
| [BoxModel](./puppeteer.protocol.dom.boxmodel.md) | Box model. |
| [CharacterDataModifiedEvent](./puppeteer.protocol.dom.characterdatamodifiedevent.md) | Mirrors DOMCharacterDataModified
event. |
| [ChildNodeCountUpdatedEvent](./puppeteer.protocol.dom.childnodecountupdatedevent.md) | Fired when Container
's child node count has changed. |
| [ChildNodeInsertedEvent](./puppeteer.protocol.dom.childnodeinsertedevent.md) | Mirrors DOMNodeInserted
event. |
| [ChildNodeRemovedEvent](./puppeteer.protocol.dom.childnoderemovedevent.md) | Mirrors DOMNodeRemoved
event. |
| [CollectClassNamesFromSubtreeRequest](./puppeteer.protocol.dom.collectclassnamesfromsubtreerequest.md) | |
| [CollectClassNamesFromSubtreeResponse](./puppeteer.protocol.dom.collectclassnamesfromsubtreeresponse.md) | |
| [CopyToRequest](./puppeteer.protocol.dom.copytorequest.md) | |
| [CopyToResponse](./puppeteer.protocol.dom.copytoresponse.md) | |
| [CSSComputedStyleProperty](./puppeteer.protocol.dom.csscomputedstyleproperty.md) | |
| [DescribeNodeRequest](./puppeteer.protocol.dom.describenoderequest.md) | |
| [DescribeNodeResponse](./puppeteer.protocol.dom.describenoderesponse.md) | |
| [DiscardSearchResultsRequest](./puppeteer.protocol.dom.discardsearchresultsrequest.md) | |
| [DistributedNodesUpdatedEvent](./puppeteer.protocol.dom.distributednodesupdatedevent.md) | Called when distrubution is changed. |
| [FocusRequest](./puppeteer.protocol.dom.focusrequest.md) | |
| [GetAttributesRequest](./puppeteer.protocol.dom.getattributesrequest.md) | |
| [GetAttributesResponse](./puppeteer.protocol.dom.getattributesresponse.md) | |
| [GetBoxModelRequest](./puppeteer.protocol.dom.getboxmodelrequest.md) | |
| [GetBoxModelResponse](./puppeteer.protocol.dom.getboxmodelresponse.md) | |
| [GetContentQuadsRequest](./puppeteer.protocol.dom.getcontentquadsrequest.md) | |
| [GetContentQuadsResponse](./puppeteer.protocol.dom.getcontentquadsresponse.md) | |
| [GetDocumentRequest](./puppeteer.protocol.dom.getdocumentrequest.md) | |
| [GetDocumentResponse](./puppeteer.protocol.dom.getdocumentresponse.md) | |
| [GetFileInfoRequest](./puppeteer.protocol.dom.getfileinforequest.md) | |
| [GetFileInfoResponse](./puppeteer.protocol.dom.getfileinforesponse.md) | |
| [GetFlattenedDocumentRequest](./puppeteer.protocol.dom.getflatteneddocumentrequest.md) | |
| [GetFlattenedDocumentResponse](./puppeteer.protocol.dom.getflatteneddocumentresponse.md) | |
| [GetFrameOwnerRequest](./puppeteer.protocol.dom.getframeownerrequest.md) | |
| [GetFrameOwnerResponse](./puppeteer.protocol.dom.getframeownerresponse.md) | |
| [GetNodeForLocationRequest](./puppeteer.protocol.dom.getnodeforlocationrequest.md) | |
| [GetNodeForLocationResponse](./puppeteer.protocol.dom.getnodeforlocationresponse.md) | |
| [GetNodesForSubtreeByStyleRequest](./puppeteer.protocol.dom.getnodesforsubtreebystylerequest.md) | |
| [GetNodesForSubtreeByStyleResponse](./puppeteer.protocol.dom.getnodesforsubtreebystyleresponse.md) | |
| [GetNodeStackTracesRequest](./puppeteer.protocol.dom.getnodestacktracesrequest.md) | |
| [GetNodeStackTracesResponse](./puppeteer.protocol.dom.getnodestacktracesresponse.md) | |
| [GetOuterHTMLRequest](./puppeteer.protocol.dom.getouterhtmlrequest.md) | |
| [GetOuterHTMLResponse](./puppeteer.protocol.dom.getouterhtmlresponse.md) | |
| [GetRelayoutBoundaryRequest](./puppeteer.protocol.dom.getrelayoutboundaryrequest.md) | |
| [GetRelayoutBoundaryResponse](./puppeteer.protocol.dom.getrelayoutboundaryresponse.md) | |
| [GetSearchResultsRequest](./puppeteer.protocol.dom.getsearchresultsrequest.md) | |
| [GetSearchResultsResponse](./puppeteer.protocol.dom.getsearchresultsresponse.md) | |
| [InlineStyleInvalidatedEvent](./puppeteer.protocol.dom.inlinestyleinvalidatedevent.md) | Fired when Element
's inline style is modified via a CSS property modification. |
| [MoveToRequest](./puppeteer.protocol.dom.movetorequest.md) | |
| [MoveToResponse](./puppeteer.protocol.dom.movetoresponse.md) | |
| [Node](./puppeteer.protocol.dom.node.md) | DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes. DOMNode is a base node mirror type. |
| [PerformSearchRequest](./puppeteer.protocol.dom.performsearchrequest.md) | |
| [PerformSearchResponse](./puppeteer.protocol.dom.performsearchresponse.md) | |
| [PseudoElementAddedEvent](./puppeteer.protocol.dom.pseudoelementaddedevent.md) | Called when a pseudo element is added to an element. |
| [PseudoElementRemovedEvent](./puppeteer.protocol.dom.pseudoelementremovedevent.md) | Called when a pseudo element is removed from an element. |
| [PushNodeByPathToFrontendRequest](./puppeteer.protocol.dom.pushnodebypathtofrontendrequest.md) | |
| [PushNodeByPathToFrontendResponse](./puppeteer.protocol.dom.pushnodebypathtofrontendresponse.md) | |
| [PushNodesByBackendIdsToFrontendRequest](./puppeteer.protocol.dom.pushnodesbybackendidstofrontendrequest.md) | |
| [PushNodesByBackendIdsToFrontendResponse](./puppeteer.protocol.dom.pushnodesbybackendidstofrontendresponse.md) | |
| [QuerySelectorAllRequest](./puppeteer.protocol.dom.queryselectorallrequest.md) | |
| [QuerySelectorAllResponse](./puppeteer.protocol.dom.queryselectorallresponse.md) | |
| [QuerySelectorRequest](./puppeteer.protocol.dom.queryselectorrequest.md) | |
| [QuerySelectorResponse](./puppeteer.protocol.dom.queryselectorresponse.md) | |
| [Rect](./puppeteer.protocol.dom.rect.md) | Rectangle. |
| [RemoveAttributeRequest](./puppeteer.protocol.dom.removeattributerequest.md) | |
| [RemoveNodeRequest](./puppeteer.protocol.dom.removenoderequest.md) | |
| [RequestChildNodesRequest](./puppeteer.protocol.dom.requestchildnodesrequest.md) | |
| [RequestNodeRequest](./puppeteer.protocol.dom.requestnoderequest.md) | |
| [RequestNodeResponse](./puppeteer.protocol.dom.requestnoderesponse.md) | |
| [ResolveNodeRequest](./puppeteer.protocol.dom.resolvenoderequest.md) | |
| [ResolveNodeResponse](./puppeteer.protocol.dom.resolvenoderesponse.md) | |
| [RGBA](./puppeteer.protocol.dom.rgba.md) | A structure holding an RGBA color. |
| [ScrollIntoViewIfNeededRequest](./puppeteer.protocol.dom.scrollintoviewifneededrequest.md) | |
| [SetAttributesAsTextRequest](./puppeteer.protocol.dom.setattributesastextrequest.md) | |
| [SetAttributeValueRequest](./puppeteer.protocol.dom.setattributevaluerequest.md) | |
| [SetChildNodesEvent](./puppeteer.protocol.dom.setchildnodesevent.md) | Fired when backend wants to provide client with the missing DOM structure. This happens upon most of the calls requesting node ids. |
| [SetFileInputFilesRequest](./puppeteer.protocol.dom.setfileinputfilesrequest.md) | |
| [SetInspectedNodeRequest](./puppeteer.protocol.dom.setinspectednoderequest.md) | |
| [SetNodeNameRequest](./puppeteer.protocol.dom.setnodenamerequest.md) | |
| [SetNodeNameResponse](./puppeteer.protocol.dom.setnodenameresponse.md) | |
| [SetNodeStackTracesEnabledRequest](./puppeteer.protocol.dom.setnodestacktracesenabledrequest.md) | |
| [SetNodeValueRequest](./puppeteer.protocol.dom.setnodevaluerequest.md) | |
| [SetOuterHTMLRequest](./puppeteer.protocol.dom.setouterhtmlrequest.md) | |
| [ShadowRootPoppedEvent](./puppeteer.protocol.dom.shadowrootpoppedevent.md) | Called when shadow root is popped from the element. |
| [ShadowRootPushedEvent](./puppeteer.protocol.dom.shadowrootpushedevent.md) | Called when shadow root is pushed into the element. |
| [ShapeOutsideInfo](./puppeteer.protocol.dom.shapeoutsideinfo.md) | CSS Shape Outside details. |
## Type Aliases
| Type Alias | Description |
| --- | --- |
| [BackendNodeId](./puppeteer.protocol.dom.backendnodeid.md) | Unique DOM node identifier used to reference a node that may not have been pushed to the front-end. |
| [NodeId](./puppeteer.protocol.dom.nodeid.md) | Unique DOM node identifier. |
| [PseudoType](./puppeteer.protocol.dom.pseudotype.md) | Pseudo element type. |
| [Quad](./puppeteer.protocol.dom.quad.md) | An array of quad vertices, x immediately followed by y for each point, points clock-wise. |
| [ShadowRootType](./puppeteer.protocol.dom.shadowroottype.md) | Shadow root type. |