1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
U
[±dvÔã@sºddlmZddlmZmZddlmZddlZddlZddl    m
Z
ddl    m Z Gdd    „d    e ƒZ Gd
d „d e ƒZeGd d „d ƒƒZGdd„dejƒZGdd„dejƒZeGdd„dƒƒZeGdd„dƒƒZGdd„deƒZeGdd„dƒƒZeGdd„dƒƒZeGdd„dƒƒZd    ddœd d!„ZdØd    d    d"d#d$œd%d&„ZdÙd"d'd(d)d*d+d,œd-d.„ZdÚd"d'd(d/d0d1œd2d3„Zd0d4œd5d6„Zd7d0d8œd9d:„Zd0d4œd;d<„Z dÛd"d'd(d0d=œd>d?„Z!d    ddœd@dA„Z"dÜd"d'd(dBd=œdCdD„Z#dÝd"d'd(dEd=œdFdG„Z$dÞd)d*d+dHœdIdJ„Z%dßd)d*dKdHœdLdM„Z&dàdNdNd*d*dOdPœdQdR„Z'dád"d'd(dSd=œdTdU„Z(d    d#dœdVdW„Z)d7dNdNdXdYœdZd[„Z*d0d4œd\d]„Z+d0d4œd^d_„Z,d0d4œd`da„Z-d0d4œdbdc„Z.dâd    d    d"d#d$œddde„Z/dãd7d*dfdgœdhdi„Z0d7d#djœdkdl„Z1dmdXdnœdodp„Z2d    d7d#dqœdrds„Z3d    d7dXdqœdtdu„Z4d0d4œdvdw„Z5d    d7d0dxœdydz„Z6d    d0dœd{d|„Z7däd    d)d*d0d}œd~d„Z8d€d#dœd‚dƒ„Z9dåd"d'd„d…d†d‡œdˆd‰„Z:d    d7d7d0dŠœd‹dŒ„Z;dæd    d7d„d0dœdŽd„Z<dçdd"d'd(d0d‘œd’d“„Z=d”d0d•œd–d—„Z>d    d˜dœd™dš„Z?d€dSdœd›dœ„Z@d    d0dœddž„ZAd    d7d#dxœdŸd „ZBd    d7d0d¡œd¢d£„ZCd    d7d0d¤œd¥d¦„ZDd0d4œd§d¨„ZEd©dªd«œd¬d­„ZFed®ƒeGd¯d°„d°ƒƒƒZGed±ƒeGd²d³„d³ƒƒƒZHed´ƒeGdµd¶„d¶ƒƒƒZIed·ƒeGd¸d¹„d¹ƒƒƒZJedºƒeGd»d¼„d¼ƒƒƒZKed½ƒeGd¾d¿„d¿ƒƒƒZLedÀƒeGdÁd„dƒƒƒZMedÃeGdÄdńdŃƒƒZNedƃeGdÇdȄdȃƒƒZOedɃeGdÊd˄d˃ƒƒZPed̃eGdÍd΄d΃ƒƒZQedσeGdÐdфdуƒƒZRed҃eGdÓdԄdԃƒƒZSedՃeGdÖdׄd׃ƒƒZTdS)èé)Ú annotationsé)Ú event_classÚ T_JSON_DICT)Ú    dataclassN)Úpage)ÚruntimecsBeZdZdZddœdd„Zedddœdd„ƒZ‡fd    d
„Z‡ZS) ÚNodeIdz%
    Unique DOM node identifier.
    Úint©ÚreturncCs|S©N©©Úselfrrúad:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\selenium/webdriver/common/devtools/v85/dom.pyÚto_jsonszNodeId.to_json©Újsonr cCs||ƒSr r©ÚclsrrrrÚ    from_jsonszNodeId.from_jsoncsd tƒ ¡¡S)Nz
NodeId({})©ÚformatÚsuperÚ__repr__r©Ú    __class__rrrszNodeId.__repr__©    Ú__name__Ú
__module__Ú __qualname__Ú__doc__rÚ classmethodrrÚ __classcell__rrrrr    s
r    csBeZdZdZddœdd„Zedddœdd„ƒZ‡fd    d
„Z‡ZS) Ú BackendNodeIdzq
    Unique DOM node identifier used to reference a node that may not have been pushed to the
    front-end.
    r
r cCs|Sr rrrrrr$szBackendNodeId.to_jsonrcCs||ƒSr rrrrrr'szBackendNodeId.from_jsoncsd tƒ ¡¡S)NzBackendNodeId({})rrrrrr+szBackendNodeId.__repr__rrrrrr%s
r%c@s>eZdZUdZded<ded<ded<dd    „Zed
d „ƒZd S) Ú BackendNodez,
    Backend node with a friendly name.
    r
Ú    node_typeÚstrÚ    node_namer%Úbackend_node_idcCs,tƒ}|j|d<|j|d<|j ¡|d<|S)NÚnodeTypeÚnodeNameÚ backendNodeId)Údictr'r)r*r©rrrrrr<s
 
 
zBackendNode.to_jsoncCs(|t|dƒt|dƒt |d¡dS)Nr+r,r-)r'r)r*)r
r(r%rrrrrrCs
 
 
 ýzBackendNode.from_jsonN©rr r!r"Ú__annotations__rr#rrrrrr&/s
r&c@sdeZdZdZdZdZdZdZdZdZ    dZ
d    Z d
Z d Z d Zd ZdZdZdZdZdd„Zedd„ƒZdS)Ú
PseudoTypez
    Pseudo element type.
    z
first-linez first-letterZbeforeÚafterÚmarkerZbackdropZ    selectionzfirst-line-inheritedZ    scrollbarzscrollbar-thumbzscrollbar-buttonzscrollbar-trackzscrollbar-track-piecezscrollbar-cornerZresizerzinput-list-buttoncCs|jSr ©ÚvaluerrrrraszPseudoType.to_jsoncCs||ƒSr rrrrrrdszPseudoType.from_jsonN)rr r!r"Z
FIRST_LINEZ FIRST_LETTERZBEFOREZAFTERÚMARKERZBACKDROPZ    SELECTIONZFIRST_LINE_INHERITEDZ    SCROLLBARZSCROLLBAR_THUMBZSCROLLBAR_BUTTONZSCROLLBAR_TRACKZSCROLLBAR_TRACK_PIECEZSCROLLBAR_CORNERZRESIZERZINPUT_LIST_BUTTONrr#rrrrrr2Ls(r2c@s0eZdZdZdZdZdZdd„Zedd„ƒZ    d    S)
ÚShadowRootTypez
    Shadow root type.
    z
user-agentÚopenÚclosedcCs|jSr r5rrrrrqszShadowRootType.to_jsoncCs||ƒSr rrrrrrtszShadowRootType.from_jsonN)
rr r!r"Z
USER_AGENTZOPEN_ZCLOSEDrr#rrrrrr8isr8c@s^eZdZUdZded<ded<ded<ded    <ded
<ded <d Zd ed<d Zded<d Zded<d Zded<d Z    ded<d Z
ded<d Z ded<d Z ded<d Z ded<d Zded<d Zded<d Zded<d Zded<d Zd ed!<d Zd"ed#<d Zd$ed%<d Zded&<d Zd$ed'<d Zded(<d Zd$ed)<d Zd*ed+<d Zd,ed-<d.d/„Zed0d1„ƒZd S)2ÚNodez
    DOM interaction is implemented in terms of mirror objects that represent the actual DOM nodes.
    DOMNode is a base node mirror type.
    r    Únode_idr%r*r
r'r(r)Ú
local_nameÚ
node_valueNútyping.Optional[NodeId]Ú    parent_idútyping.Optional[int]Úchild_node_countz"typing.Optional[typing.List[Node]]Úchildrenz!typing.Optional[typing.List[str]]Ú
attributesútyping.Optional[str]Ú document_urlÚbase_urlÚ    public_idÚ    system_idÚinternal_subsetÚ xml_versionÚnamer6ztyping.Optional[PseudoType]Ú pseudo_typeztyping.Optional[ShadowRootType]Úshadow_root_typeztyping.Optional[page.FrameId]Úframe_idztyping.Optional[Node]Úcontent_documentÚ shadow_rootsÚtemplate_contentÚpseudo_elementsÚimported_documentz)typing.Optional[typing.List[BackendNode]]Údistributed_nodesútyping.Optional[bool]Úis_svgcCsrtƒ}|j ¡|d<|j ¡|d<|j|d<|j|d<|j|d<|j|d<|jdk    rb|j ¡|d<|j    dk    rv|j    |d<|j
dk    r”d    d
„|j
Dƒ|d <|j dk    r²d d
„|j Dƒ|d <|j dk    rÆ|j |d<|j dk    rÚ|j |d<|jdk    rî|j|d<|jdk    r|j|d<|jdk    r|j|d<|jdk    r0|j|d<|jdk    rF|j|d<|jdk    r\|j|d<|jdk    rv|j ¡|d<|jdk    r|j ¡|d<|jdk    rª|j ¡|d<|jdk    rÄ|j ¡|d<|jdk    rädd
„|jDƒ|d<|jdk    rþ|j ¡|d<|jdk    rdd
„|jDƒ|d<|jdk    r8|j ¡|d<|jdk    rXd d
„|jDƒ|d!<|jdk    rn|j|d"<|S)#NÚnodeIdr-r+r,Ú    localNameÚ    nodeValueÚparentIdÚchildNodeCountcSsg|] }| ¡‘qSr©r©Ú.0ÚirrrÚ
<listcomp>âsz Node.to_json.<locals>.<listcomp>rCcSsg|]}|‘qSrrr^rrrraäsrDÚ documentURLÚbaseURLÚpublicIdÚsystemIdÚinternalSubsetÚ
xmlVersionrLr6Ú
pseudoTypeÚshadowRootTypeÚframeIdÚcontentDocumentcSsg|] }| ¡‘qSrr]r^rrrraþsÚ shadowRootsÚtemplateContentcSsg|] }| ¡‘qSrr]r^rrrrasÚpseudoElementsÚimportedDocumentcSsg|] }| ¡‘qSrr]r^rrrrasÚdistributedNodesÚisSVG)r.r<rr*r'r)r=r>r@rBrCrDrFrGrHrIrJrKrLr6rMrNrOrPrQrRrSrTrUrWr/rrrrÕsh
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
z Node.to_jsoncCsv|t |d¡t |d¡t|dƒt|dƒt|dƒt|dƒd|krXt |d¡ndd|krnt|dƒndd    |krŠd
d „|d    Dƒndd |kr¦d d „|d Dƒndd|kr¼t|dƒndd|krÒt|dƒndd|krèt|dƒndd|krþt|dƒndd|krt|dƒndd|kr.t|dƒndd|krFt|dƒndd|kr^t|dƒndd|krxt |d¡ndd|kr’t |d¡ndd|kr®tj |d¡ndd|krÈt     |d¡ndd|krædd „|dDƒndd|krt     |d¡ndd|krdd „|dDƒndd|kr8t     |d¡ndd |krVd!d „|d Dƒndd"|krnt
|d"ƒndd#S)$NrXr-r+r,rYrZr[r\rCcSsg|]}t |¡‘qSr©r;rr^rrrrasz"Node.from_json.<locals>.<listcomp>rDcSsg|] }t|ƒ‘qSr©r(r^rrrrasrbrcrdrerfrgrLr6rhrirjrkrlcSsg|]}t |¡‘qSrrrr^rrrra$srmrncSsg|]}t |¡‘qSrrrr^rrrra&srorpcSsg|]}t |¡‘qSr©r&rr^rrrra(srq)r<r*r'r)r=r>r@rBrCrDrFrGrHrIrJrKrLr6rMrNrOrPrQrRrSrTrUrW) r    rr%r
r(r2r8rÚFrameIdr;Úboolrrrrr s<  
 
 
 
äzNode.from_json)rr r!r"r1r@rBrCrDrFrGrHrIrJrKrLr6rMrNrOrPrQrRrSrTrUrWrr#rrrrrr;ys@
                      6r;c@sJeZdZUdZded<ded<ded<dZded<d    d
„Zed d „ƒZdS) ÚRGBAz,
    A structure holding an RGBA color.
    r
ÚrÚgÚbNztyping.Optional[float]ÚacCs<tƒ}|j|d<|j|d<|j|d<|jdk    r8|j|d<|S)Nrxryrzr{)r.rxryrzr{r/rrrr>s
 
 
 
 
z RGBA.to_jsoncCs<|t|dƒt|dƒt|dƒd|kr4t|dƒnddS)Nrxryrzr{)rxryrzr{)r
ÚfloatrrrrrGs 
 
 
üzRGBA.from_json)    rr r!r"r1r{rr#rrrrrrw-s
     rwcsBeZdZdZddœdd„Zedddœdd„ƒZ‡fd    d
„Z‡ZS) ÚQuadzc
    An array of quad vertices, x immediately followed by y for each point, points clock-wise.
    ztyping.List[float]r cCs|Sr rrrrrrUsz Quad.to_jsonrcCs||ƒSr rrrrrrXszQuad.from_jsoncsd tƒ ¡¡S)NzQuad({})rrrrrr\sz Quad.__repr__rrrrrr}Qs
r}c@sbeZdZUdZded<ded<ded<ded<ded<ded    <d
Zd ed <d d„Zedd„ƒZd
S)ÚBoxModelz
    Box model.
    r}ÚcontentÚpaddingÚborderÚmarginr
ÚwidthÚheightNz!typing.Optional[ShapeOutsideInfo]Ú shape_outsidecCsntƒ}|j ¡|d<|j ¡|d<|j ¡|d<|j ¡|d<|j|d<|j|d<|jdk    rj|j ¡|d<|S)Nrr€rr‚rƒr„Ú shapeOutside)    r.rrr€rr‚rƒr„r…r/rrrrzs
 
 
zBoxModel.to_jsonc Csd|t |d¡t |d¡t |d¡t |d¡t|dƒt|dƒd|kr\t |d¡nddS)    Nrr€rr‚rƒr„r†)rr€rr‚rƒr„r…)r}rr
ÚShapeOutsideInforrrrr†s    
 
ùzBoxModel.from_json)    rr r!r"r1r…rr#rrrrrr~`s
  r~c@s>eZdZUdZded<ded<ded<dd„Zed    d
„ƒZd S) r‡z$
    CSS Shape Outside details.
    r}Úboundsztyping.List[typing.Any]ÚshapeÚ margin_shapecCs@tƒ}|j ¡|d<dd„|jDƒ|d<dd„|jDƒ|d<|S)NrˆcSsg|]}|‘qSrrr^rrrra¤sz,ShapeOutsideInfo.to_json.<locals>.<listcomp>r‰cSsg|]}|‘qSrrr^rrrra¥sÚ marginShape)r.rˆrr‰rŠr/rrrr¡s
zShapeOutsideInfo.to_jsoncCs4|t |d¡dd„|dDƒdd„|dDƒdS)NrˆcSsg|]}|‘qSrrr^rrrra¬sz.ShapeOutsideInfo.from_json.<locals>.<listcomp>r‰cSsg|]}|‘qSrrr^rrrra­sr‹)rˆr‰rŠ©r}rrrrrr¨s
 ýzShapeOutsideInfo.from_jsonNr0rrrrr‡“s
r‡c@sFeZdZUdZded<ded<ded<ded<dd„Zed    d
„ƒZd S) ÚRectz
    Rectangle.
    r|ÚxÚyrƒr„cCs2tƒ}|j|d<|j|d<|j|d<|j|d<|S)NrŽrrƒr„)r.rŽrrƒr„r/rrrrÂs 
 
 
 
z Rect.to_jsoncCs0|t|dƒt|dƒt|dƒt|dƒdS)NrŽrrƒr„)rŽrrƒr„)r|rrrrrÊs 
 
 
 
üzRect.from_jsonNr0rrrrr±s
rz<typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]])r<r ccs4tƒ}| ¡|d<d|dœ}|V}dd„|dDƒS)zÇ
    Collects class names for the node with given id and all of it's child nodes.
 
    **EXPERIMENTAL**
 
    :param node_id: Id of the node to collect class names.
    :returns: Class name list.
    rXz DOM.collectClassNamesFromSubtree©ÚmethodÚparamscSsg|] }t|ƒ‘qSrrsr^rrrraæsz4collect_class_names_from_subtree.<locals>.<listcomp>Z
classNames©r.r©r<r’Úcmd_dictrrrrÚ collect_class_names_from_subtreeÔs  þr–r?z2typing.Generator[T_JSON_DICT, T_JSON_DICT, NodeId])r<Útarget_node_idÚinsert_before_node_idr ccsPtƒ}| ¡|d<| ¡|d<|dk    r2| ¡|d<d|dœ}|V}t |d¡S)aµ
    Creates a deep copy of the specified node and places it into the target container before the
    given anchor.
 
    **EXPERIMENTAL**
 
    :param node_id: Id of the node to copy.
    :param target_node_id: Id of the element to drop the copy into.
    :param insert_before_node_id: *(Optional)* Drop the copy before this node (if absent, the copy becomes the last child of ```targetNodeId```).
    :returns: Id of the node clone.
    rXÚ targetNodeIdNÚinsertBeforeNodeIdz
DOM.copyTor©r.rr    r©r<r—r˜r’r•rrrrÚcopy_toés   þrztyping.Optional[BackendNodeId]z'typing.Optional[runtime.RemoteObjectId]rArVz0typing.Generator[T_JSON_DICT, T_JSON_DICT, Node])r<r*Ú    object_idÚdepthÚpiercer ccs€tƒ}|dk    r| ¡|d<|dk    r.| ¡|d<|dk    rB| ¡|d<|dk    rR||d<|dk    rb||d<d|dœ}|V}t |d    ¡S)
a·
    Describes node given its id, does not require domain to be enabled. Does not start tracking any
    objects, can be used for automation.
 
    :param node_id: *(Optional)* Identifier of the node.
    :param backend_node_id: *(Optional)* Identifier of the backend node.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper.
    :param depth: *(Optional)* 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.
    :param pierce: *(Optional)* Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false).
    :returns: Node description.
    NrXr-ÚobjectIdrŸr zDOM.describeNoderÚnode)r.rr;r)r<r*ržrŸr r’r•rrrrÚ describe_nodes    þr£ztyping.Optional[Rect]z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r<r*ržÚrectr ccsjtƒ}|dk    r| ¡|d<|dk    r.| ¡|d<|dk    rB| ¡|d<|dk    rV| ¡|d<d|dœ}|V}dS)ao
    Scrolls the specified rect of the given node into view if not already visible.
    Note: exactly one between nodeId, backendNodeId and objectId should be passed
    to identify the node.
 
    **EXPERIMENTAL**
 
    :param node_id: *(Optional)* Identifier of the node.
    :param backend_node_id: *(Optional)* Identifier of the backend node.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper.
    :param rect: *(Optional)* The rect to be scrolled into view, relative to the node's border box, in CSS pixels. When omitted, center of the node will be used, similar to Element.scrollIntoView.
    NrXr-r¡r¤zDOM.scrollIntoViewIfNeededrr“)r<r*ržr¤r’r•rrrrÚscroll_into_view_if_needed+s    þr¥r ccsddi}|V}dS)z0
    Disables DOM agent for the given page.
    r‘z DOM.disableNr©r•rrrrÚdisableMsÿr§r()Ú    search_idr ccs"tƒ}||d<d|dœ}|V}dS)zÙ
    Discards search results from the session with the given id. ``getSearchResults`` should no longer
    be called for that search.
 
    **EXPERIMENTAL**
 
    :param search_id: Unique search session identifier.
    ÚsearchIdzDOM.discardSearchResultsrN©r.)r¨r’r•rrrrÚdiscard_search_resultsWs þr«ccsddi}|V}dS)z/
    Enables DOM agent for the given page.
    r‘z
DOM.enableNrr¦rrrÚenableksÿr¬)r<r*ržr ccsVtƒ}|dk    r| ¡|d<|dk    r.| ¡|d<|dk    rB| ¡|d<d|dœ}|V}dS)zô
    Focuses the given element.
 
    :param node_id: *(Optional)* Identifier of the node.
    :param backend_node_id: *(Optional)* Identifier of the backend node.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper.
    NrXr-r¡z    DOM.focusrr“©r<r*ržr’r•rrrrÚfocusus    þr®ccs4tƒ}| ¡|d<d|dœ}|V}dd„|dDƒS)zº
    Returns attributes for the specified node.
 
    :param node_id: Id of the node to retrieve attibutes for.
    :returns: An interleaved array of node attribute names and values.
    rXzDOM.getAttributesrcSsg|] }t|ƒ‘qSrrsr^rrrraŸsz"get_attributes.<locals>.<listcomp>rDr“r”rrrÚget_attributess     þr¯z4typing.Generator[T_JSON_DICT, T_JSON_DICT, BoxModel]ccs`tƒ}|dk    r| ¡|d<|dk    r.| ¡|d<|dk    rB| ¡|d<d|dœ}|V}t |d¡S)a!
    Returns boxes for the given node.
 
    :param node_id: *(Optional)* Identifier of the node.
    :param backend_node_id: *(Optional)* Identifier of the backend node.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper.
    :returns: Box model for the node.
    NrXr-r¡zDOM.getBoxModelrÚmodel)r.rr~rr­rrrÚ get_box_model¢s    þr±z=typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Quad]]ccsdtƒ}|dk    r| ¡|d<|dk    r.| ¡|d<|dk    rB| ¡|d<d|dœ}|V}dd„|d    DƒS)
a¨
    Returns quads that describe node position on the page. This method
    might return multiple quads for inline nodes.
 
    **EXPERIMENTAL**
 
    :param node_id: *(Optional)* Identifier of the node.
    :param backend_node_id: *(Optional)* Identifier of the backend node.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper.
    :returns: Quads that describe node layout relative to viewport.
    NrXr-r¡zDOM.getContentQuadsrcSsg|]}t |¡‘qSrrŒr^rrrraÚsz%get_content_quads.<locals>.<listcomp>Zquadsr“r­rrrÚget_content_quads¾s   þr²)rŸr r ccsDtƒ}|dk    r||d<|dk    r&||d<d|dœ}|V}t |d¡S)á£
    Returns the root DOM node (and optionally the subtree) to the caller.
 
    :param depth: *(Optional)* 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.
    :param pierce: *(Optional)* Whether or not iframes and shadow roots should be traversed when returning the subtree (default is false).
    :returns: Resulting node.
    NrŸr zDOM.getDocumentrÚroot)r.r;r©rŸr r’r•rrrrÚ get_documentÝs þr¶z=typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Node]]ccsHtƒ}|dk    r||d<|dk    r&||d<d|dœ}|V}dd„|dDƒS)    r³NrŸr zDOM.getFlattenedDocumentrcSsg|]}t |¡‘qSrrrr^rrrra
sz*get_flattened_document.<locals>.<listcomp>ÚnodesrªrµrrrÚget_flattened_documentõs þr¸r
zntyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[BackendNodeId, page.FrameId, typing.Optional[NodeId]]])rŽrÚinclude_user_agent_shadow_domÚignore_pointer_events_noner ccs|tƒ}||d<||d<|dk    r&||d<|dk    r6||d<d|dœ}|V}t |d¡tj |d    ¡d
|krvt |d
¡ndfS) a¼
    Returns node id at given location. Depending on whether DOM domain is enabled, nodeId is
    either returned or not.
 
    :param x: X coordinate.
    :param y: Y coordinate.
    :param include_user_agent_shadow_dom: *(Optional)* False to skip to the nearest non-UA shadow root ancestor (default: false).
    :param ignore_pointer_events_none: *(Optional)* Whether to ignore pointer-events: none on elements and hit test them.
    :returns: A tuple with the following items:
 
        0. **backendNodeId** - Resulting node.
        1. **frameId** - Frame this node belongs to.
        2. **nodeId** - *(Optional)* Id of the node at given coordinates, only when enabled and requested document.
    rŽrNÚincludeUserAgentShadowDOMZignorePointerEventsNonezDOM.getNodeForLocationrr-rjrX)r.r%rrrur    )rŽrr¹rºr’r•rrrrÚget_node_for_location sþ ýr¼z/typing.Generator[T_JSON_DICT, T_JSON_DICT, str]ccs^tƒ}|dk    r| ¡|d<|dk    r.| ¡|d<|dk    rB| ¡|d<d|dœ}|V}t|dƒS)a
    Returns node's HTML markup.
 
    :param node_id: *(Optional)* Identifier of the node.
    :param backend_node_id: *(Optional)* Identifier of the backend node.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper.
    :returns: Outer HTML markup.
    NrXr-r¡zDOM.getOuterHTMLrÚ    outerHTML©r.rr(r­rrrÚget_outer_html4s    þr¿ccs0tƒ}| ¡|d<d|dœ}|V}t |d¡S)zÄ
    Returns the id of the nearest ancestor that is a relayout boundary.
 
    **EXPERIMENTAL**
 
    :param node_id: Id of the node.
    :returns: Relayout boundary node id for the given node.
    rXzDOM.getRelayoutBoundaryrr›r”rrrÚget_relayout_boundaryPs  þrÀz?typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[NodeId]])r¨Ú
from_indexÚto_indexr ccs@tƒ}||d<||d<||d<d|dœ}|V}dd„|dDƒS)    a†
    Returns search results from given ``fromIndex`` to given ``toIndex`` from the search with the given
    identifier.
 
    **EXPERIMENTAL**
 
    :param search_id: Unique search session identifier.
    :param from_index: Start index of the search result to be returned.
    :param to_index: End index of the search result to be returned.
    :returns: Ids of the search result nodes.
    r©Z    fromIndexZtoIndexzDOM.getSearchResultsrcSsg|]}t |¡‘qSr©r    rr^rrrra~sz&get_search_results.<locals>.<listcomp>ÚnodeIdsrª)r¨rÁrÂr’r•rrrrÚget_search_resultsesþrÅccsddi}|V}dS)z
    Hides any highlight.
    r‘zDOM.hideHighlightNrr¦rrrÚhide_highlightsÿrÆccsddi}|V}dS)z
    Highlights DOM node.
    r‘zDOM.highlightNodeNrr¦rrrÚhighlight_node‹sÿrÇccsddi}|V}dS)z%
    Highlights given rectangle.
    r‘zDOM.highlightRectNrr¦rrrÚhighlight_rect•sÿrÈccsddi}|V}dS)z:
    Marks last undoable state.
 
    **EXPERIMENTAL**
    r‘zDOM.markUndoableStateNrr¦rrrÚmark_undoable_stateŸsÿrÉccsPtƒ}| ¡|d<| ¡|d<|dk    r2| ¡|d<d|dœ}|V}t |d¡S)a
    Moves node into the new container, places it before the given anchor.
 
    :param node_id: Id of the node to move.
    :param target_node_id: Id of the element to drop the moved node into.
    :param insert_before_node_id: *(Optional)* Drop node before this one (if absent, the moved node becomes the last child of ```targetNodeId```).
    :returns: New id of the moved node.
    rXr™Nršz
DOM.moveTorr›rœrrrÚmove_to«s    þrÊzBtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, int]])Úqueryr¹r ccsFtƒ}||d<|dk    r||d<d|dœ}|V}t|dƒt|dƒfS)aý
    Searches for a given string in the DOM tree. Use ``getSearchResults`` to access search results or
    ``cancelSearch`` to end this search session.
 
    **EXPERIMENTAL**
 
    :param query: Plain text or query selector or XPath search query.
    :param include_user_agent_shadow_dom: *(Optional)* True to search in user agent shadow DOM.
    :returns: A tuple with the following items:
 
        0. **searchId** - Unique search session identifier.
        1. **resultCount** - Number of search results.
    rËNr»zDOM.performSearchrr©Z resultCount)r.r(r
)rËr¹r’r•rrrrÚperform_searchÅsþ
 
þrÌ)Úpathr ccs,tƒ}||d<d|dœ}|V}t |d¡S)z×
    Requests that the node is sent to the caller given its path. // FIXME, use XPath
 
    **EXPERIMENTAL**
 
    :param path: Path to node in the proprietary format.
    :returns: Id of the node for given path.
    rÍzDOM.pushNodeByPathToFrontendrrX)r.r    r)rÍr’r•rrrrÚpush_node_by_path_to_frontendås þrÎztyping.List[BackendNodeId])Úbackend_node_idsr ccs:tƒ}dd„|Dƒ|d<d|dœ}|V}dd„|dDƒS)a
    Requests that a batch of nodes is sent to the caller given their backend node ids.
 
    **EXPERIMENTAL**
 
    :param backend_node_ids: The array of backend node ids.
    :returns: The array of ids of pushed nodes that correspond to the backend ids specified in backendNodeIds.
    cSsg|] }| ¡‘qSrr]r^rrrrasz9push_nodes_by_backend_ids_to_frontend.<locals>.<listcomp>ZbackendNodeIdsz#DOM.pushNodesByBackendIdsToFrontendrcSsg|]}t |¡‘qSrrÃr^rrrra srÄrª)rÏr’r•rrrrÚ%push_nodes_by_backend_ids_to_frontendús þrÐ)r<Úselectorr ccs8tƒ}| ¡|d<||d<d|dœ}|V}t |d¡S)z³
    Executes ``querySelector`` on a given node.
 
    :param node_id: Id of the node to query upon.
    :param selector: Selector string.
    :returns: Query selector result.
    rXrÑzDOM.querySelectorrr›©r<rÑr’r•rrrrÚquery_selectors  þrÓccs<tƒ}| ¡|d<||d<d|dœ}|V}dd„|dDƒS)z¶
    Executes ``querySelectorAll`` on a given node.
 
    :param node_id: Id of the node to query upon.
    :param selector: Selector string.
    :returns: Query selector result.
    rXrÑzDOM.querySelectorAllrcSsg|]}t |¡‘qSrrÃr^rrrra8sz&query_selector_all.<locals>.<listcomp>rÄr“rÒrrrÚquery_selector_all%s  þrÔccsddi}|V}dS)z?
    Re-does the last undone action.
 
    **EXPERIMENTAL**
    r‘zDOM.redoNrr¦rrrÚredo;sÿrÕ)r<rLr ccs.tƒ}| ¡|d<||d<d|dœ}|V}dS)z½
    Removes attribute with given name from an element with given id.
 
    :param node_id: Id of the element to remove attribute from.
    :param name: Name of the attribute to remove.
    rXrLzDOM.removeAttributerNr“©r<rLr’r•rrrrÚremove_attributeGs
 þr×ccs&tƒ}| ¡|d<d|dœ}|V}dS)zT
    Removes node with given id.
 
    :param node_id: Id of the node to remove.
    rXzDOM.removeNoderNr“r”rrrÚ remove_node[s  þrØ)r<rŸr r ccsFtƒ}| ¡|d<|dk    r"||d<|dk    r2||d<d|dœ}|V}dS)aO
    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.
 
    :param node_id: Id of the node to get children for.
    :param depth: *(Optional)* 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.
    :param pierce: *(Optional)* Whether or not iframes and shadow roots should be traversed when returning the sub-tree (default is false).
    rXNrŸr zDOM.requestChildNodesrr“)r<rŸr r’r•rrrrÚrequest_child_nodesls þrÙzruntime.RemoteObjectId)ržr ccs0tƒ}| ¡|d<d|dœ}|V}t |d¡S)aW
    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.
 
    :param object_id: JavaScript object id to convert into node.
    :returns: Node id for given object.
    r¡zDOM.requestNoderrXr›©ržr’r•rrrrÚ request_node‡s  þrÛrEz+typing.Optional[runtime.ExecutionContextId]z@typing.Generator[T_JSON_DICT, T_JSON_DICT, runtime.RemoteObject])r<r*Ú object_groupÚexecution_context_idr ccsrtƒ}|dk    r| ¡|d<|dk    r.| ¡|d<|dk    r>||d<|dk    rR| ¡|d<d|dœ}|V}tj |d¡S)    aá
    Resolves the JavaScript node object for a given NodeId or BackendNodeId.
 
    :param node_id: *(Optional)* Id of the node to resolve.
    :param backend_node_id: *(Optional)* Backend identifier of the node to resolve.
    :param object_group: *(Optional)* Symbolic group name that can be used to release multiple objects.
    :param execution_context_id: *(Optional)* Execution context in which to resolve the node.
    :returns: JavaScript object wrapper for given node.
    NrXr-Z objectGroupZexecutionContextIdzDOM.resolveNoderÚobject)r.rrZ RemoteObjectr)r<r*rÜrÝr’r•rrrrÚ resolve_nodeœs   þrß)r<rLr6r ccs6tƒ}| ¡|d<||d<||d<d|dœ}|V}dS)z·
    Sets attribute for an element with given id.
 
    :param node_id: Id of the element to set attribute for.
    :param name: Attribute name.
    :param value: Attribute value.
    rXrLr6zDOM.setAttributeValuerNr“)r<rLr6r’r•rrrrÚset_attribute_value¼s  þrà)r<ÚtextrLr ccs>tƒ}| ¡|d<||d<|dk    r*||d<d|dœ}|V}dS)aÅ
    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.
 
    :param node_id: Id of the element to set attributes for.
    :param text: Text with a number of attributes. Will parse this text using HTML parser.
    :param name: *(Optional)* Attribute name to replace with new attributes derived from text in case text parsed successfully.
    rXráNrLzDOM.setAttributesAsTextrr“)r<rárLr’r•rrrrÚset_attributes_as_textÓs  þrâztyping.List[str])Úfilesr<r*ržr ccshtƒ}dd„|Dƒ|d<|dk    r,| ¡|d<|dk    r@| ¡|d<|dk    rT| ¡|d<d|d    œ}|V}dS)
a4
    Sets files for the given file input element.
 
    :param files: Array of file paths to set.
    :param node_id: *(Optional)* Identifier of the node.
    :param backend_node_id: *(Optional)* Identifier of the backend node.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper.
    cSsg|]}|‘qSrrr^rrrraûsz(set_file_input_files.<locals>.<listcomp>rãNrXr-r¡zDOM.setFileInputFilesrr“)rãr<r*ržr’r•rrrrÚset_file_input_filesìs   þrärv)r¬r ccs"tƒ}||d<d|dœ}|V}dS)z¯
    Sets if stack traces should be captured for Nodes. See ``Node.getNodeStackTraces``. Default is disabled.
 
    **EXPERIMENTAL**
 
    :param enable: Enable or disable.
    r¬zDOM.setNodeStackTracesEnabledrNrª)r¬r’r•rrrrÚset_node_stack_traces_enabled    s
þråzOtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Optional[runtime.StackTrace]]ccs>tƒ}| ¡|d<d|dœ}|V}d|kr:tj |d¡SdS)zý
    Gets stack traces associated with a Node. As of now, only provides stack trace for Node creation.
 
    **EXPERIMENTAL**
 
    :param node_id: Id of the node to get stack traces for.
    :returns: *(Optional)* Creation stack trace, if available.
    rXzDOM.getNodeStackTracesrZcreationN)r.rrZ
StackTracerr”rrrÚget_node_stack_tracess  þræccs.tƒ}| ¡|d<d|dœ}|V}t|dƒS)z¨
    Returns file information for the given
    File wrapper.
 
    **EXPERIMENTAL**
 
    :param object_id: JavaScript object id of the node wrapper.
    :returns: 
    r¡zDOM.getFileInforrÍr¾rÚrrrÚ get_file_info1s  þrçccs&tƒ}| ¡|d<d|dœ}|V}dS)zæ
    Enables console to refer to the node with given id via $x (see Command Line API for more details
    $x functions).
 
    **EXPERIMENTAL**
 
    :param node_id: DOM node id to be accessible by means of $x command line API.
    rXzDOM.setInspectedNoderNr“r”rrrÚset_inspected_nodeGs  þrèccs8tƒ}| ¡|d<||d<d|dœ}|V}t |d¡S)z¦
    Sets node name for a node with given id.
 
    :param node_id: Id of the node to set name for.
    :param name: New node's name.
    :returns: New node's id.
    rXrLzDOM.setNodeNamerr›rÖrrrÚ set_node_name[s  þré)r<r6r ccs.tƒ}| ¡|d<||d<d|dœ}|V}dS)z
    Sets node value for a node with given id.
 
    :param node_id: Id of the node to set value for.
    :param value: New node's value.
    rXr6zDOM.setNodeValuerNr“)r<r6r’r•rrrrÚset_node_valueqs
 þrê)r<Ú
outer_htmlr ccs.tƒ}| ¡|d<||d<d|dœ}|V}dS)z
    Sets node HTML markup, returns new node id.
 
    :param node_id: Id of the node to set markup for.
    :param outer_html: Outer HTML markup to set.
    rXr½zDOM.setOuterHTMLrNr“)r<rër’r•rrrrÚset_outer_html…s
 þrìccsddi}|V}dS)zA
    Undoes the last performed action.
 
    **EXPERIMENTAL**
    r‘zDOM.undoNrr¦rrrÚundo™sÿríz page.FrameIdz`typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[BackendNodeId, typing.Optional[NodeId]]])rOr ccsJtƒ}| ¡|d<d|dœ}|V}t |d¡d|krDt |d¡ndfS)aE
    Returns iframe node that owns iframe with the given domain.
 
    **EXPERIMENTAL**
 
    :param frame_id:
    :returns: A tuple with the following items:
 
        0. **backendNodeId** - Resulting node.
        1. **nodeId** - *(Optional)* Id of the node at given coordinates, only when enabled and requested document.
    rjzDOM.getFrameOwnerrr-rXN)r.rr%rr    )rOr’r•rrrrÚget_frame_owner¥s þ þrîzDOM.attributeModifiedc@s>eZdZUdZded<ded<ded<edddœd    d
„ƒZd S) ÚAttributeModifiedz9
    Fired when ``Element``'s attribute is modified.
    r    r<r(rLr6rrcCs(|t |d¡t|dƒt|dƒdS)NrXrLr6)r<rLr6©r    rr(rrrrrÍs
 
 
ýzAttributeModified.from_jsonN©rr r!r"r1r#rrrrrrïÀs
rïzDOM.attributeRemovedc@s6eZdZUdZded<ded<edddœdd    „ƒZd
S) ÚAttributeRemovedz8
    Fired when ``Element``'s attribute is removed.
    r    r<r(rLrrcCs|t |d¡t|dƒdS)NrXrL)r<rLrðrrrrrás 
þzAttributeRemoved.from_jsonNrñrrrrròÖs
 
ròzDOM.characterDataModifiedc@s6eZdZUdZded<ded<edddœdd    „ƒZd
S) ÚCharacterDataModifiedz5
    Mirrors ``DOMCharacterDataModified`` event.
    r    r<r(Úcharacter_datarrcCs|t |d¡t|dƒdS)NrXZ characterData)r<rôrðrrrrrôs 
þzCharacterDataModified.from_jsonNrñrrrrróés
 
rózDOM.childNodeCountUpdatedc@s6eZdZUdZded<ded<edddœdd    „ƒZd
S) ÚChildNodeCountUpdatedzB
    Fired when ``Container``'s child node count has changed.
    r    r<r
rBrrcCs|t |d¡t|dƒdS)NrXr\)r<rB)r    rr
rrrrrs 
þzChildNodeCountUpdated.from_jsonNrñrrrrrõüs
 
rõzDOM.childNodeInsertedc@s>eZdZUdZded<ded<ded<edddœd    d
„ƒZd S) ÚChildNodeInsertedz,
    Mirrors ``DOMNodeInserted`` event.
    r    Úparent_node_idÚprevious_node_idr;r¢rrcCs,|t |d¡t |d¡t |d¡dS)NÚ parentNodeIdZpreviousNodeIdr¢)r÷rør¢©r    rr;rrrrrs
   ýzChildNodeInserted.from_jsonNrñrrrrrös
rözDOM.childNodeRemovedc@s6eZdZUdZded<ded<edddœdd„ƒZd    S)
ÚChildNodeRemovedz+
    Mirrors ``DOMNodeRemoved`` event.
    r    r÷r<rrcCs |t |d¡t |d¡dS)NrùrX)r÷r<rÃrrrrr0s  þzChildNodeRemoved.from_jsonNrñrrrrrû%s
 
rûzDOM.distributedNodesUpdatedc@s6eZdZUdZded<ded<edddœdd    „ƒZd
S) ÚDistributedNodesUpdatedzD
    **EXPERIMENTAL**
 
    Called when distrubution is changed.
    r    Úinsertion_point_idztyping.List[BackendNode]rUrrcCs$|t |d¡dd„|dDƒdS)NZinsertionPointIdcSsg|]}t |¡‘qSrrtr^rrrraIsz5DistributedNodesUpdated.from_json.<locals>.<listcomp>rp)rýrUrÃrrrrrEs þz!DistributedNodesUpdated.from_jsonNrñrrrrrü8s
 
rüzDOM.documentUpdatedc@s$eZdZdZedddœdd„ƒZdS)ÚDocumentUpdatedzY
    Fired when ``Document`` has been totally updated. Node ids are no longer valid.
    rrcCs|ƒSr rrrrrrUszDocumentUpdated.from_jsonN)rr r!r"r#rrrrrrþMsrþzDOM.inlineStyleInvalidatedc@s.eZdZUdZded<edddœdd„ƒZdS)    ÚInlineStyleInvalidatedzr
    **EXPERIMENTAL**
 
    Fired when ``Element``'s inline style is modified via a CSS property modification.
    ztyping.List[NodeId]Únode_idsrrcCs|dd„|dDƒdS)NcSsg|]}t |¡‘qSrrÃr^rrrrajsz4InlineStyleInvalidated.from_json.<locals>.<listcomp>rÄ)rrrrrrrgsÿz InlineStyleInvalidated.from_jsonNrñrrrrrÿ\s
rÿzDOM.pseudoElementAddedc@s6eZdZUdZded<ded<edddœdd    „ƒZd
S) ÚPseudoElementAddedzT
    **EXPERIMENTAL**
 
    Called when a pseudo element is added to an element.
    r    r@r;Úpseudo_elementrrcCs |t |d¡t |d¡dS)Nr[Z pseudoElement)r@rrúrrrrr{s  þzPseudoElementAdded.from_jsonNrñrrrrrns
 
rzDOM.pseudoElementRemovedc@s6eZdZUdZded<ded<edddœdd„ƒZd    S)
ÚPseudoElementRemovedzX
    **EXPERIMENTAL**
 
    Called when a pseudo element is removed from an element.
    r    r@Úpseudo_element_idrrcCs |t |d¡t |d¡dS)Nr[ZpseudoElementId)r@rrÃrrrrrs  þzPseudoElementRemoved.from_jsonNrñrrrrrƒs
 
rzDOM.setChildNodesc@s6eZdZUdZded<ded<edddœdd    „ƒZd
S) Ú SetChildNodesz‘
    Fired when backend wants to provide client with the missing DOM structure. This happens upon
    most of the calls requesting node ids.
    r    r@ztyping.List[Node]r·rrcCs$|t |d¡dd„|dDƒdS)Nr[cSsg|]}t |¡‘qSrrrr^rrrra¨sz+SetChildNodes.from_json.<locals>.<listcomp>r·)r@r·rÃrrrrr¤s þzSetChildNodes.from_jsonNrñrrrrr˜s
 
rzDOM.shadowRootPoppedc@s6eZdZUdZded<ded<edddœdd„ƒZd    S)
ÚShadowRootPoppedzS
    **EXPERIMENTAL**
 
    Called when shadow root is popped from the element.
    r    Úhost_idÚroot_idrrcCs |t |d¡t |d¡dS)NÚhostIdZrootId)rrrÃrrrrr¹s  þzShadowRootPopped.from_jsonNrñrrrrr¬s
 
rzDOM.shadowRootPushedc@s6eZdZUdZded<ded<edddœdd    „ƒZd
S) ÚShadowRootPushedzS
    **EXPERIMENTAL**
 
    Called when shadow root is pushed into the element.
    r    rr;r´rrcCs |t |d¡t |d¡dS)Nr    r´)rr´rúrrrrrÎs  þzShadowRootPushed.from_jsonNrñrrrrr
Ás
 
r
)N)NNNNN)NNNN)NNN)NNN)NNN)NN)NN)NN)NNN)N)N)NN)NNNN)N)NNN)UÚ
__future__rÚutilrrZ dataclassesrÚenumÚtypingÚrrr
r    r%r&ÚEnumr2r8r;rwÚlistr}r~r‡rr–rr£r¥r§r«r¬r®r¯r±r²r¶r¸r¼r¿rÀrÅrÆrÇrÈrÉrÊrÌrÎrÐrÓrÔrÕr×rØrÙrÛrßràrârärårærçrèrérêrìrírîrïròrórõrörûrürþrÿrrrrr
rrrrÚ<module>s.    4#2"ýû&ü"
 ýýý þþü(ý
 
 
ýþ  ýü ýü