stable (1.2) latest (tip-of-tree) v8-inspector (node) Home
Domains
Accessibility Animation ApplicationCache Audits Browser CSS CacheStorage Console DOM DOMDebugger DOMSnapshot DOMStorage Database Debugger DeviceOrientation Emulation HeadlessExperimental HeapProfiler IO IndexedDB Input Inspector LayerTree Log Memory Network Overlay Page Performance Profiler Runtime Schema Security ServiceWorker Storage SystemInfo Target Tethering Tracing
Chrome DevTools Protocol Viewer - latest (tip-of-tree)

DOM Domain

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.

Methods

DOM.enable

Enables DOM agent for the given page.

DOM.disable

Disables DOM agent for the given page.

DOM.getDocument

Returns the root DOM node (and optionally the subtree) to the caller.

Parameters
depth
integer The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0. Experimental
pierce
boolean Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false). Experimental
Return object
root
Node Resulting node.

DOM.getFlattenedDocument

Returns the root DOM node (and optionally the subtree) to the caller.

Parameters
depth
integer The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0. Experimental
pierce
boolean Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false). Experimental
Return object
nodes
array [ Node ] Resulting node.

DOM.collectClassNamesFromSubtree

Collects class names for the node with given id and all of it's child nodes. Experimental

Parameters
nodeId
NodeId Id of the node to collect class names.
Return object
classNames
array [string] Class name list.

DOM.requestChildNodes

Requests that children of the node with given id are returned to the caller in form of setChildNodes events where not only immediate children are retrieved, but all children down to the specified depth.

Parameters
nodeId
NodeId Id of the node to get children for.
depth
integer The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0. Experimental
pierce
boolean Whether or not iframes and shadow roots should be traversed when returning the sub-tree (default is false). Experimental

DOM.querySelector

Executes querySelector on a given node.

Parameters
nodeId
NodeId Id of the node to query upon.
selector
string Selector string.
Return object
nodeId
NodeId Query selector result.

DOM.querySelectorAll

Executes querySelectorAll on a given node.

Parameters
nodeId
NodeId Id of the node to query upon.
selector
string Selector string.
Return object
nodeIds
array [ NodeId ] Query selector result.

DOM.setNodeName

Sets node name for a node with given id.

Parameters
nodeId
NodeId Id of the node to set name for.
name
string New node's name.
Return object
nodeId
NodeId New node's id.

DOM.setNodeValue

Sets node value for a node with given id.

Parameters
nodeId
NodeId Id of the node to set value for.
value
string New node's value.

DOM.removeNode

Removes node with given id.

Parameters
nodeId
NodeId Id of the node to remove.

DOM.setAttributeValue

Sets attribute for an element with given id.

Parameters
nodeId
NodeId Id of the element to set attribute for.
name
string Attribute name.
value
string Attribute value.

DOM.setAttributesAsText

Sets attributes on element with given id. This method is useful when user edits some existing attribute value and types in several attribute name/value pairs.

Parameters
nodeId
NodeId Id of the element to set attributes for.
text
string Text with a number of attributes. Will parse this text using HTML parser.
name
string Attribute name to replace with new attributes derived from text in case text parsed successfully.

DOM.removeAttribute

Removes attribute with given name from an element with given id.

Parameters
nodeId
NodeId Id of the element to remove attribute from.
name
string Name of the attribute to remove.

DOM.getOuterHTML

Returns node's HTML markup.

Parameters
nodeId
NodeId Identifier of the node.
backendNodeId
BackendNodeId Identifier of the backend node.
objectId
Runtime.RemoteObjectId JavaScript object id of the node wrapper.
Return object
outerHTML
string Outer HTML markup.

DOM.setOuterHTML

Sets node HTML markup, returns new node id.

Parameters
nodeId
NodeId Id of the node to set markup for.
outerHTML
string Outer HTML markup to set.

DOM.performSearch

Searches for a given string in the DOM tree. Use getSearchResults to access search results or cancelSearch to end this search session. Experimental

Parameters
query
string Plain text or query selector or XPath search query.
includeUserAgentShadowDOM
boolean True to search in user agent shadow DOM. Experimental
Return object
searchId
string Unique search session identifier.
resultCount
integer Number of search results.

DOM.getSearchResults

Returns search results from given fromIndex to given toIndex from the search with the given identifier. Experimental

Parameters
searchId
string Unique search session identifier.
fromIndex
integer Start index of the search result to be returned.
toIndex
integer End index of the search result to be returned.
Return object
nodeIds
array [ NodeId ] Ids of the search result nodes.

DOM.discardSearchResults

Discards search results from the session with the given id. getSearchResults should no longer be called for that search. Experimental

Parameters
searchId
string Unique search session identifier.

DOM.requestNode

Requests that the node is sent to the caller given the JavaScript node object reference. All nodes that form the path from the node to the root are also sent to the client as a series of setChildNodes notifications.

Parameters
objectId
Runtime.RemoteObjectId JavaScript object id to convert into node.
Return object
nodeId
NodeId Node id for given object.

DOM.pushNodeByPathToFrontend

Requests that the node is sent to the caller given its path. // FIXME, use XPath Experimental

Parameters
path
string Path to node in the proprietary format.
Return object
nodeId
NodeId Id of the node for given path.

DOM.pushNodesByBackendIdsToFrontend

Requests that a batch of nodes is sent to the caller given their backend node ids. Experimental

Parameters
backendNodeIds
array [ BackendNodeId ] The array of backend node ids.
Return object
nodeIds
array [ NodeId ] The array of ids of pushed nodes that correspond to the backend ids specified in backendNodeIds.

DOM.setInspectedNode

Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions). Experimental

Parameters
nodeId
NodeId DOM node id to be accessible by means of $x command line API.

DOM.resolveNode

Resolves the JavaScript node object for a given NodeId or BackendNodeId.

Parameters
nodeId
NodeId Id of the node to resolve.
backendNodeId
DOM.BackendNodeId Backend identifier of the node to resolve.
objectGroup
string Symbolic group name that can be used to release multiple objects.
Return object
object
Runtime.RemoteObject JavaScript object wrapper for given node.

DOM.getAttributes

Returns attributes for the specified node.

Parameters
nodeId
NodeId Id of the node to retrieve attibutes for.
Return object
attributes
array [string] An interleaved array of node attribute names and values.

DOM.copyTo

Creates a deep copy of the specified node and places it into the target container before the given anchor. Experimental

Parameters
nodeId
NodeId Id of the node to copy.
targetNodeId
NodeId Id of the element to drop the copy into.
insertBeforeNodeId
NodeId Drop the copy before this node (if absent, the copy becomes the last child of targetNodeId).
Return object
nodeId
NodeId Id of the node clone.

DOM.moveTo

Moves node into the new container, places it before the given anchor.

Parameters
nodeId
NodeId Id of the node to move.
targetNodeId
NodeId Id of the element to drop the moved node into.
insertBeforeNodeId
NodeId Drop node before this one (if absent, the moved node becomes the last child of targetNodeId).
Return object
nodeId
NodeId New id of the moved node.

DOM.undo

Undoes the last performed action. Experimental

DOM.redo

Re-does the last undone action. Experimental

DOM.markUndoableState

Marks last undoable state. Experimental

DOM.focus

Focuses the given element. Experimental

Parameters
nodeId
NodeId Identifier of the node.
backendNodeId
BackendNodeId Identifier of the backend node.
objectId
Runtime.RemoteObjectId JavaScript object id of the node wrapper.

DOM.setFileInputFiles

Sets files for the given file input element. Experimental

Parameters
files
array [string] Array of file paths to set.
nodeId
NodeId Identifier of the node.
backendNodeId
BackendNodeId Identifier of the backend node.
objectId
Runtime.RemoteObjectId JavaScript object id of the node wrapper.

DOM.getBoxModel

Returns boxes for the currently selected nodes. Experimental

Parameters
nodeId
NodeId Identifier of the node.
backendNodeId
BackendNodeId Identifier of the backend node.
objectId
Runtime.RemoteObjectId JavaScript object id of the node wrapper.
Return object
model
BoxModel Box model for the node.

DOM.getNodeForLocation

Returns node id at given location. Experimental

Parameters
x
integer X coordinate.
y
integer Y coordinate.
includeUserAgentShadowDOM
boolean False to skip to the nearest non-UA shadow root ancestor (default: false).
Return object
nodeId
NodeId Id of the node at given coordinates.

DOM.getRelayoutBoundary

Returns the id of the nearest ancestor that is a relayout boundary. Experimental

Parameters
nodeId
NodeId Id of the node.
Return object
nodeId
NodeId Relayout boundary node id for the given node.

DOM.describeNode

Describes node given its id, does not require domain to be enabled. Does not start tracking any objects, can be used for automation.

Parameters
nodeId
NodeId Identifier of the node.
backendNodeId
BackendNodeId Identifier of the backend node.
objectId
Runtime.RemoteObjectId JavaScript object id of the node wrapper.
depth
integer The maximum depth at which children should be retrieved, defaults to 1. Use -1 for the entire subtree or provide an integer larger than 0. Experimental
pierce
boolean Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false). Experimental
Return object
node
Node Node description.

Events

DOM.documentUpdated

Fired when Document has been totally updated. Node ids are no longer valid.

DOM.setChildNodes

Fired when backend wants to provide client with the missing DOM structure. This happens upon most of the calls requesting node ids.

Parameters
parentId
NodeId Parent node id to populate with children.
nodes
array [ Node ] Child nodes array.

DOM.attributeModified

Fired when Element's attribute is modified.

Parameters
nodeId
NodeId Id of the node that has changed.
name
string Attribute name.
value
string Attribute value.

DOM.attributeRemoved

Fired when Element's attribute is removed.

Parameters
nodeId
NodeId Id of the node that has changed.
name
string A ttribute name.

DOM.inlineStyleInvalidated

Fired when Element's inline style is modified via a CSS property modification. Experimental

Parameters
nodeIds
array [ NodeId ] Ids of the nodes for which the inline styles have been invalidated.

DOM.characterDataModified

Mirrors DOMCharacterDataModified event.

Parameters
nodeId
NodeId Id of the node that has changed.
characterData
string New text value.

DOM.childNodeCountUpdated

Fired when Container's child node count has changed.

Parameters
nodeId
NodeId Id of the node that has changed.
childNodeCount
integer New node count.

DOM.childNodeInserted

Mirrors DOMNodeInserted event.

Parameters
parentNodeId
NodeId Id of the node that has changed.
previousNodeId
NodeId If of the previous siblint.
node
Node Inserted node data.

DOM.childNodeRemoved

Mirrors DOMNodeRemoved event.

Parameters
parentNodeId
NodeId Parent id.
nodeId
NodeId Id of the node that has been removed.

DOM.shadowRootPushed

Called when shadow root is pushed into the element. Experimental

Parameters
hostId
NodeId Host element id.
root
Node Shadow root.

DOM.shadowRootPopped

Called when shadow root is popped from the element. Experimental

Parameters
hostId
NodeId Host element id.
rootId
NodeId Shadow root id.

DOM.pseudoElementAdded

Called when a pseudo element is added to an element. Experimental

Parameters
parentId
NodeId Pseudo element's parent element id.
pseudoElement
Node The added pseudo element.

DOM.pseudoElementRemoved

Called when a pseudo element is removed from an element. Experimental

Parameters
parentId
NodeId Pseudo element's parent element id.
pseudoElementId
NodeId The removed pseudo element id.

DOM.distributedNodesUpdated

Called when distrubution is changed. Experimental

Parameters
insertionPointId
NodeId Insertion point where distrubuted nodes were updated.
distributedNodes
array [ BackendNode ] Distributed nodes for given insertion point.

Types

NodeId

Unique DOM node identifier.

Type: integer

BackendNodeId

Unique DOM node identifier used to reference a node that may not have been pushed to the front-end. Experimental

Type: integer

BackendNode

Backend node with a friendly name. Experimental

Type: object

Properties
nodeType
integer Node's nodeType.
nodeName
string Node's nodeName.
backendNodeId
BackendNodeId

PseudoType

Pseudo element type.

Type: string

Allowed values

first-line, first-letter, before, after, backdrop, selection, first-line-inherited, scrollbar, scrollbar-thumb, scrollbar-button, scrollbar-track, scrollbar-track-piece, scrollbar-corner, resizer, input-list-button.

ShadowRootType

Shadow root type.

Type: string

Allowed values

user-agent, open, closed.

Node

DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes. DOMNode is a base node mirror type.

Type: object

Properties
nodeId
NodeId Node identifier that is passed into the rest of the DOM messages as the nodeId. Backend will only push node with given id once. It is aware of all requested nodes and will only fire DOM events for nodes known to the client.
parentId
NodeId The id of the parent node if any. Experimental
backendNodeId
BackendNodeId The BackendNodeId for this node. Experimental
nodeType
integer Node's nodeType.
nodeName
string Node's nodeName.
localName
string Node's localName.
nodeValue
string Node's nodeValue.
childNodeCount
integer Child count for Container nodes.
children
array [ Node ] Child nodes of this node when requested with children.
attributes
array [string] Attributes of the Element node in the form of flat array [name1, value1, name2, value2].
documentURL
string Document URL that Document or FrameOwner node points to.
baseURL
string Base URL that Document or FrameOwner node uses for URL completion. Experimental
publicId
string DocumentType's publicId.
systemId
string DocumentType's systemId.
internalSubset
string DocumentType's internalSubset.
xmlVersion
string Document's XML version in case of XML documents.
name
string Attr's name.
value
string Attr's value.
pseudoType
PseudoType Pseudo element type for this node.
shadowRootType
ShadowRootType Shadow root type.
frameId
Page.FrameId Frame ID for frame owner elements. Experimental
contentDocument
Node Content document for frame owner elements.
shadowRoots
array [ Node ] Shadow root list for given element host. Experimental
templateContent
Node Content document fragment for template elements. Experimental
pseudoElements
array [ Node ] Pseudo elements associated with this node. Experimental
importedDocument
Node Import document for the HTMLImport links.
distributedNodes
array [ BackendNode ] Distributed nodes for given insertion point. Experimental
isSVG
boolean Whether the node is SVG. Experimental

RGBA

A structure holding an RGBA color.

Type: object

Properties
r
integer The red component, in the [0-255] range.
g
integer The green component, in the [0-255] range.
b
integer The blue component, in the [0-255] range.
a
number The alpha component, in the [0-1] range (default: 1).

Quad

An array of quad vertices, x immediately followed by y for each point, points clock-wise. Experimental

Type: array

BoxModel

Box model. Experimental

Type: object

Properties
content
Quad Content box
padding
Quad Padding box
border
Quad Border box
margin
Quad Margin box
width
integer Node width
height
integer Node height
shapeOutside
ShapeOutsideInfo Shape outside coordinates

ShapeOutsideInfo

CSS Shape Outside details. Experimental

Type: object

Properties
bounds
Quad Shape bounds
shape
array [any] Shape coordinate details
marginShape
array [any] Margin shape bounds

Rect

Rectangle. Experimental

Type: object

Properties
x
number X coordinate
y
number Y coordinate
width
number Rectangle width
height
number Rectangle height