o
    ҷh:                     @  s8  d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ G dd	 d	eZG d
d dejZG dd dejZG dd dejZeG dd dZeG dd dZeG dd dZeG dd dZG dd dejZeG dd dZd/ddZd/d d!Z				d0d1d+d,Zd2d-d.ZdS )3    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)runtimec                      s8   e Zd ZdZdddZedddZ fd	d
Z  ZS )AXNodeIdz/
    Unique accessibility node identifier.
    returnstrc                 C  s   | S N selfr   r   g/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v85/accessibility.pyto_json   s   zAXNodeId.to_jsonjsonc                 C     | |S r   r   clsr   r   r   r   	from_json      zAXNodeId.from_jsonc                   s   d t  S )NzAXNodeId({}))formatsuper__repr__r   	__class__r   r   r      s   zAXNodeId.__repr__)r
   r   )r   r   r
   r	   )	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__r   r   r   r   r	      s    
r	   c                   @  sh   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdd Zedd ZdS )AXValueTypez*
    Enum of possible property types.
    booleantristatebooleanOrUndefinedidref	idrefListintegernodenodeListnumberstringcomputedStringtoken	tokenListdomRelationroleinternalRolevalueUndefinedc                 C     | j S r   valuer   r   r   r   r   5      zAXValueType.to_jsonc                 C  r   r   r   r   r   r   r   r   8   r   zAXValueType.from_jsonN)r   r   r   r    BOOLEANTRISTATEBOOLEAN_OR_UNDEFINEDIDREF
IDREF_LISTINTEGERNODE	NODE_LISTNUMBERSTRINGCOMPUTED_STRINGTOKEN
TOKEN_LISTDOM_RELATIONROLEINTERNAL_ROLEVALUE_UNDEFINEDr   r!   r   r   r   r   r   r#      s,    r#   c                   @  s<   e Zd ZdZdZdZdZdZdZdZ	dd	 Z
ed
d ZdS )AXValueSourceTypez,
    Enum of possible property sources.
    	attributeimplicitstylecontentsplaceholderrelatedElementc                 C  r5   r   r6   r   r   r   r   r   H   r8   zAXValueSourceType.to_jsonc                 C  r   r   r   r   r   r   r   r   K   r   zAXValueSourceType.from_jsonN)r   r   r   r    	ATTRIBUTEIMPLICITSTYLECONTENTSPLACEHOLDERRELATED_ELEMENTr   r!   r   r   r   r   r   rJ   =   s    rJ   c                   @  sD   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
d Zedd ZdS )AXValueNativeSourceTypezd
    Enum of possible native property sources (as a subtype of a particular AXValueSourceType).
    
figcaptionlabellabelforlabelwrappedlegendtablecaptiontitleotherc                 C  r5   r   r6   r   r   r   r   r   ]   r8   zAXValueNativeSourceType.to_jsonc                 C  r   r   r   r   r   r   r   r   `   r   z!AXValueNativeSourceType.from_jsonN)r   r   r   r    
FIGCAPTIONLABELLABELFORLABELWRAPPEDLEGENDTABLECAPTIONTITLEOTHERr   r!   r   r   r   r   r   rW   P   s    rW   c                   @  s   e Zd ZU dZded< dZded< dZded< dZded	< dZd
ed< dZ	ded< dZ
ded< dZd
ed< dZded< dd Zedd ZdS )AXValueSourcez5
    A single source for a computed AX property.
    rJ   type_Ntyping.Optional[AXValue]r7   typing.Optional[str]rK   attribute_valuetyping.Optional[bool]
supersededz(typing.Optional[AXValueNativeSourceType]native_sourcenative_source_valueinvalidinvalid_reasonc                 C  s   t  }| j |d< | jd ur| j |d< | jd ur | j|d< | jd ur,| j |d< | jd ur6| j|d< | jd urB| j |d< | jd urN| j |d< | j	d urX| j	|d< | j
d urb| j
|d	< |S )
Ntyper7   rK   attributeValuern   nativeSourcenativeSourceValuerq   invalidReason)dictri   r   r7   rK   rl   rn   ro   rp   rq   rr   r   r   r   r   r   r      s&   











zAXValueSource.to_jsonc                 C  s   | t |d d|v rt|d nd d|v rt|d nd d|v r)t|d nd d|v r4t|d nd d|v r@t|d nd d|v rLt|d nd d|v rWt|d nd d	|v rdt|d	 d
	S d d
	S )Nrs   r7   rK   rt   rn   ru   rv   rq   rw   )	ri   r7   rK   rl   rn   ro   rp   rq   rr   )rJ   r   AXValuer   boolrW   r   r   r   r   r      s   	zAXValueSource.from_json)r   r   r   r    __annotations__r7   rK   rl   rn   ro   rp   rq   rr   r   r!   r   r   r   r   r   rh   e   s   
 rh   c                   @  sB   e Zd ZU ded< dZded< dZded< dd Zed	d
 ZdS )AXRelatedNodezdom.BackendNodeIdbackend_dom_node_idNrk   r'   textc                 C  s@   t  }| j |d< | jd ur| j|d< | jd ur| j|d< |S )NbackendDOMNodeIdr'   r   )rx   r~   r   r'   r   ry   r   r   r   r      s   



zAXRelatedNode.to_jsonc                 C  sF   | t j|d d|v rt|d nd d|v rt|d dS d dS )Nr   r'   r   )r~   r'   r   )r   BackendNodeIdr   r   r   r   r   r   r      s   zAXRelatedNode.from_json)	r   r   r   r|   r'   r   r   r!   r   r   r   r   r   r}      s   
 	r}   c                   @  s2   e Zd ZU ded< ded< dd Zedd Zd	S )

AXPropertyAXPropertyNamenamerz   r7   c                 C  s&   t  }| j |d< | j |d< |S )Nr   r7   )rx   r   r   r7   ry   r   r   r   r      s   zAXProperty.to_jsonc                 C  s    | t |d t|d dS )Nr   r7   )r   r7   )r   r   rz   r   r   r   r   r      s   zAXProperty.from_jsonN)r   r   r   r|   r   r!   r   r   r   r   r   r      s   
 r   c                   @  sR   e Zd ZU dZded< dZded< dZded< dZd	ed
< dd Ze	dd Z
dS )rz   z(
    A single computed AX property.
    r#   ri   Nztyping.Optional[typing.Any]r7   z+typing.Optional[typing.List[AXRelatedNode]]related_nodesz+typing.Optional[typing.List[AXValueSource]]sourcesc                 C  sh   t  }| j |d< | jd ur| j|d< | jd ur#dd | jD |d< | jd ur2dd | jD |d< |S )Nrs   r7   c                 S     g | ]}|  qS r   r   .0ir   r   r   
<listcomp>       z#AXValue.to_json.<locals>.<listcomp>relatedNodesc                 S  r   r   r   r   r   r   r   r      r   r   )rx   ri   r   r7   r   r   ry   r   r   r   r      s   



zAXValue.to_jsonc                 C  sb   | t |d d|v r|d nd d|v rdd |d D nd d|v r-dd |d D dS d dS )	Nrs   r7   r   c                 S     g | ]}t |qS r   )r}   r   r   r   r   r   r          z%AXValue.from_json.<locals>.<listcomp>r   c                 S  r   r   )rh   r   r   r   r   r   r      r   )ri   r7   r   r   )r#   r   r   r   r   r   r      s   zAXValue.from_json)r   r   r   r    r|   r7   r   r   r   r!   r   r   r   r   r   rz      s   
 rz   c                   @  s   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)d* Z+e,d+d, Z-d-S ).r   a  
    Values of AXProperty name:
    - from 'busy' to 'roledescription': states which apply to every AX node
    - from 'live' to 'root': attributes which apply to nodes in live regions
    - from 'autocomplete' to 'valuetext': attributes which apply to widgets
    - from 'checked' to 'selected': states which apply to widgets
    - from 'activedescendant' to 'owns' - relationships between elements other than parent/child/sibling.
    busydisablededitable	focusablefocusedhidden
hiddenRootrq   keyshortcutssettableroledescriptionliveatomicrelevantrootautocompletehasPopuplevelmultiselectableorientation	multilinereadonlyrequiredvalueminvaluemax	valuetextcheckedexpandedmodalpressedselectedactivedescendantcontrolsdescribedbydetailserrormessageflowto
labelledbyownsc                 C  r5   r   r6   r   r   r   r   r   3  r8   zAXPropertyName.to_jsonc                 C  r   r   r   r   r   r   r   r   6  r   zAXPropertyName.from_jsonN).r   r   r   r    BUSYDISABLEDEDITABLE	FOCUSABLEFOCUSEDHIDDENHIDDEN_ROOTINVALIDKEYSHORTCUTSSETTABLEROLEDESCRIPTIONLIVEATOMICRELEVANTROOTAUTOCOMPLETE	HAS_POPUPLEVELMULTISELECTABLEORIENTATION	MULTILINEREADONLYREQUIREDVALUEMINVALUEMAX	VALUETEXTCHECKEDEXPANDEDMODALPRESSEDSELECTEDACTIVEDESCENDANTCONTROLSDESCRIBEDBYDETAILSERRORMESSAGEFLOWTO
LABELLEDBYOWNSr   r!   r   r   r   r   r   r     sX    r   c                   @  s   e Zd ZU dZded< ded< dZded< dZd	ed
< dZd	ed< dZd	ed< dZ	d	ed< dZ
ded< dZded< dZded< dd Zedd ZdS )AXNodez+
    A node in the accessibility tree.
    r	   node_idr{   ignoredNz(typing.Optional[typing.List[AXProperty]]ignored_reasonsrj   r2   r   descriptionr7   
propertiesz&typing.Optional[typing.List[AXNodeId]]	child_ids"typing.Optional[dom.BackendNodeId]r~   c                 C  s   t  }| j |d< | j|d< | jd urdd | jD |d< | jd ur*| j |d< | jd ur6| j |d< | jd urB| j |d< | jd urN| j |d	< | j	d ur]d
d | j	D |d< | j
d urldd | j
D |d< | jd urx| j |d< |S )NnodeIdr   c                 S  r   r   r   r   r   r   r   r   c  r   z"AXNode.to_json.<locals>.<listcomp>ignoredReasonsr2   r   r   r7   c                 S  r   r   r   r   r   r   r   r   m  r   r   c                 S  r   r   r   r   r   r   r   r   o  r   childIdsr   )rx   r   r   r   r   r2   r   r   r7   r   r   r~   ry   r   r   r   r   ^  s(   








zAXNode.to_jsonc                 C  s   | t |d t|d d|v rdd |d D nd d|v r%t|d nd d|v r1t|d nd d|v r=t|d nd d	|v rIt|d	 nd d
|v rWdd |d
 D nd d|v redd |d D nd d|v rttj|d d
S d d
S )Nr   r   r   c                 S  r   r   r   r   r   r   r   r   r   y  r   z$AXNode.from_json.<locals>.<listcomp>r2   r   r   r7   r   c                 S  r   r   r   r   r   r   r   r   ~  r   r   c                 S  r   r   )r	   r   r   r   r   r   r     r   r   )
r   r   r   r2   r   r   r7   r   r   r~   )r	   r   r{   rz   r   r   r   r   r   r   r   t  s   

zAXNode.from_json)r   r   r   r    r|   r   r2   r   r   r7   r   r   r~   r   r!   r   r   r   r   r   r   ;  s   
 r   r
   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                  c      ddi} | V }dS )z,
    Disables the accessibility domain.
    methodzAccessibility.disableNr   cmd_dictr   r   r   r   disable  s   
r   c                  c  r   )z
    Enables the accessibility domain which causes ``AXNodeId``'s to remain consistent between method calls.
    This turns on accessibility for the page, which can impact performance until accessibility is disabled.
    r   zAccessibility.enableNr   r   r   r   r   enable  s   
r   r   typing.Optional[dom.NodeId]backend_node_idr   	object_id'typing.Optional[runtime.RemoteObjectId]fetch_relativesrm   ?typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[AXNode]]c                 c  sv    t  }| dur|  |d< |dur| |d< |dur"| |d< |dur*||d< d|d}|V }dd	 |d
 D S )a  
    Fetches the accessibility node and partial accessibility tree for this DOM node, if it exists.

    **EXPERIMENTAL**

    :param node_id: *(Optional)* Identifier of the node to get the partial accessibility tree for.
    :param backend_node_id: *(Optional)* Identifier of the backend node to get the partial accessibility tree for.
    :param object_id: *(Optional)* JavaScript object id of the node wrapper to get the partial accessibility tree for.
    :param fetch_relatives: *(Optional)* Whether to fetch this nodes ancestors, siblings and children. Defaults to true.
    :returns: The ``Accessibility.AXNode`` for this DOM node, if it exists, plus its ancestors, siblings and children, if requested.
    Nr   backendNodeIdobjectIdfetchRelativeszAccessibility.getPartialAXTree)r   paramsc                 S  r   r   r   r   r   r   r   r   r     r   z'get_partial_ax_tree.<locals>.<listcomp>nodes)rx   r   )r   r   r   r   r   r   r   r   r   r   get_partial_ax_tree  s   r   c                  c  s"    ddi} | V }dd |d D S )zU
    Fetches the entire accessibility tree

    **EXPERIMENTAL**

    :returns: 
    r   zAccessibility.getFullAXTreec                 S  r   r   r   r   r   r   r   r     r   z$get_full_ax_tree.<locals>.<listcomp>r   r   r   r   r   r   get_full_ax_tree  s
   	r   )r
   r   )NNNN)
r   r   r   r   r   r   r   rm   r
   r   )r
   r   )
__future__r   utilr   r   dataclassesr   enumtyping r   r   r   r	   Enumr#   rJ   rW   rh   r}   r   rz   r   r   r   r   r   r   r   r   r   r   <module>   s<   C%9
H

"