
    +g{              
       t   S SK r S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJ	r	  S S	KJ
r
  S S
KJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr   \	" S5      r\	" S5      r\
\\4   rS\S\\/\4   4S jrS\S\\/\4   4S jrS\\\4   S\\/\4   4S jrS\S\\/\4   4S jrS\S\\/\4   4S jrS\S\\/\4   4S jr S\S\\/\4   4S jr!S\\\4   S\\/\
\S    \4   4   4S! jr"S"\S\\/\
\S    \4   4   4S# jr#SCS"\S$\S\
\S    \4   4S% jjr$S\\\4   S\\/\\   4   4S& jr%S\\\4   S\\/\\   4   4S' jr&S\\\4   S\\/\
\\   \S    4   4   4S( jr'S\\\4   S)\S\\/\4   4S* jr(S\\\4   S)\S\\/\4   4S+ jr)S\\\4   S,\S)\S\\/\4   4S- jr*S\
\\\4   \4   S\\/\4   4S. jr+S\
\\\\4   4   S\\/\
\\4   4   4S/ jr,S"\
\\\\4   4   S\\/\
\\4   4   4S0 jr-S1\
\\\\4   4   S\\/\
\S    \4   4   4S2 jr.S"\S\\/\4   4S3 jr/S"\S\\/\4   4S4 jr0S\\\4   S\\/\4   4S5 jr1S"\S6\S\\/\4   4S7 jr2S\\\4   S6\S\\/\4   4S8 jr3S9\4S\\/\4   4S: jr5S;\\   S\\/\4   4S< jr6S\\/\
\\S    4   4   4S= jr7S\\\4   S,\S\\/\4   4S> jr8S?\\/\4   S\\/\
\S    \4   4   4S@ jr9S?\\/\
\\S    4   4   S\\/\
\\   \S    4   4   4SA jr:S?\\/\4   S\\/\4   4SB jr;g)D    N)Iterable)Any)Callable)List)Literal)Tuple)TypeVar)Union)NoAlertPresentException)NoSuchElementException)NoSuchFrameException)StaleElementReferenceExceptionWebDriverException)Alert	WebDriver)
WebElementDTtitlereturnc                 $   ^  S[         4U 4S jjnU$ )zAn expectation for checking the title of a page.

Parameters:
----------
title : str
    The expected title, which must be an exact match.

Returns:
-------
boolean : True if the title matches, False otherwise.
driverc                 "   > U R                   T:H  $ Nr   r   r   s    v/Users/Alptekin/Desktop/izin_takip/venv/lib/python3.13/site-packages/selenium/webdriver/support/expected_conditions.py
_predicatetitle_is.<locals>._predicate=   s    ||u$$    r   r   r    s   ` r   title_isr$   0   s    %9 % r"   c                 $   ^  S[         4U 4S jjnU$ )zAn expectation for checking that the title contains a case-sensitive
substring.

Parameters:
----------
title : str
    The fragment of title expected.

Returns:
-------
boolean : True when the title matches, False otherwise.
r   c                 "   > TU R                   ;   $ r   r   r   s    r   r    "title_contains.<locals>._predicateQ   s    $$r"   r   r#   s   ` r   title_containsr(   C   s    %9 % r"   locatorc                 $   ^  S[         4U 4S jjnU$ )aB  An expectation for checking that an element is present on the DOM of a
page. This does not necessarily mean that the element is visible.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.

Returns:
-------
WebElement : The WebElement once it is located.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> element = WebDriverWait(driver, 10).until(
... EC.presence_of_element_located((By.NAME, "q")))
r   c                 "   > U R                   " T6 $ r   )find_elementr   r)   s    r   r    /presence_of_element_located.<locals>._predicatem   s    ""G,,r"   WebDriverOrWebElementr)   r    s   ` r   presence_of_element_locatedr2   W   s    ,-0 - r"   urlc                 $   ^  S[         4U 4S jjnU$ )zAn expectation for checking that the current url contains a case-
sensitive substring.

Parameters:
----------
url : str
    The fragment of url expected.

Returns:
-------
boolean : True when the url matches, False otherwise.
r   c                 "   > TU R                   ;   $ r   current_urlr   r3   s    r   r     url_contains.<locals>._predicate       f((((r"   r   r3   r    s   ` r   url_containsr<   s       )9 ) r"   patternc                 $   ^  S[         4U 4S jjnU$ )a$  An expectation for checking the current url.

Parameters:
----------
pattern : str
    The pattern to match with the current url.

Returns:
-------
boolean : True when the pattern matches, False otherwise.

Notes:
------
More powerful than url_contains, as it allows for regular expressions.
r   c                 J   > [         R                  " TU R                  5      S L$ r   )researchr7   )r   r>   s    r   r    url_matches.<locals>._predicate   s    yy&"4"45TAAr"   r   )r>   r    s   ` r   url_matchesrD      s    "B9 B r"   c                 $   ^  S[         4U 4S jjnU$ )zAn expectation for checking the current url.

Parameters:
----------
url : str
    The expected url, which must be an exact match.

Returns:
-------
boolean : True when the url matches, False otherwise.
r   c                 "   > TU R                   :H  $ r   r6   r8   s    r   r    url_to_be.<locals>._predicate   r:   r"   r   r;   s   ` r   	url_to_berH      s    )9 ) r"   c                 $   ^  S[         4U 4S jjnU$ )zAn expectation for checking the current url is different than a given
string.

Parameters:
----------
url : str
    The expected url, which must not be an exact match.

Returns:
-------
boolean : True when the url does not match, False otherwise
r   c                 "   > TU R                   :g  $ r   r6   r8   s    r   r    url_changes.<locals>._predicate   r:   r"   r   r;   s   ` r   url_changesrL      r=   r"   Fc                 $   ^  S[         4U 4S jjnU$ )a  An expectation for checking that an element is present on the DOM of a
page and visible. Visibility means that the element is not only displayed
but also has a height and width that is greater than 0.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.

Returns:
-------
WebElement : The WebElement once it is located and visible.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> element = WebDriverWait(driver, 10).until(
... EC.visibility_of_element_located((By.NAME, "q")))
r   c                 V   >  [        U R                  " T6 5      $ ! [         a     gf = fNF)_element_if_visibler,   r   r-   s    r   r    1visibility_of_element_located.<locals>._predicate   s0    	&v':':G'DEE- 		s    
((r/   r1   s   ` r   visibility_of_element_locatedrR      s    20  r"   elementc                    ^  U 4S jnU$ )a  An expectation for checking that an element, known to be present on the
DOM of a page, is visible.

Parameters:
----------
element : WebElement
    The WebElement to check.

Returns:
-------
WebElement : The WebElement once it is visible.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> element = WebDriverWait(driver, 10).until(
... EC.visibility_of(driver.find_element(By.NAME, "q")))

Notes:
------
Visibility means that the element is not only displayed but also has
a height and width that is greater than 0. element is the WebElement
returns the (same) WebElement once it is visible
c                    > [        T5      $ r   )rP   _rS   s    r   r    !visibility_of.<locals>._predicate  s    "7++r"    rS   r    s   ` r   visibility_ofr[      s    8, r"   
visibilityc                 2    U R                  5       U:X  a  U $ S$ )aO  An expectation for checking that an element, known to be present on the
DOM of a page, is of the expected visibility.

Parameters:
----------
element : WebElement
    The WebElement to check.
visibility : bool
    The expected visibility of the element.

Returns:
-------
WebElement : The WebElement once it is visible or not visible.
F)is_displayed)rS   r\   s     r   rP   rP   	  s     **,
:7EEr"   c                 $   ^  S[         4U 4S jjnU$ )a/  An expectation for checking that there is at least one element present
on a web page.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.

Returns:
-------
List[WebElement] : The list of WebElements once they are located.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> elements = WebDriverWait(driver, 10).until(
... EC.presence_of_all_elements_located((By.CLASS_NAME, "foo")))
r   c                 "   > U R                   " T6 $ r   )find_elementsr-   s    r   r    4presence_of_all_elements_located.<locals>._predicate1  s    ##W--r"   r/   r1   s   ` r    presence_of_all_elements_locatedrc     s    ,.0 . r"   c                 $   ^  S[         4U 4S jjnU$ )a=  An expectation for checking that there is at least one element visible
on a web page.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.

Returns:
-------
List[WebElement] : The list of WebElements once they are located and visible.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> elements = WebDriverWait(driver, 10).until(
... EC.visibility_of_any_elements_located((By.CLASS_NAME, "foo")))
r   c                 r   > U R                   " T6  Vs/ s H  n[        U5      (       d  M  UPM     sn$ s  snf r   )ra   rP   )r   rS   r)   s     r   r    6visibility_of_any_elements_located.<locals>._predicateM  s1    '-';';W'Ef'EGI\]dIe'Efffs   44r/   r1   s   ` r   "visibility_of_any_elements_locatedrg   7  s    ,g0 g r"   c                 $   ^  S[         4U 4S jjnU$ )a  An expectation for checking that all elements are present on the DOM of
a page and visible. Visibility means that the elements are not only
displayed but also has a height and width that is greater than 0.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the elements.

Returns:
-------
List[WebElement] : The list of WebElements once they are located and visible.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> elements = WebDriverWait(driver, 10).until(
... EC.visibility_of_all_elements_located((By.CLASS_NAME, "foo")))
r   c                 |   >  U R                   " T6 nU H  n[        USS9(       d  M    g   U$ ! [         a     gf = f)NFr\   )ra   rP   r   )r   elementsrS   r)   s      r   r    6visibility_of_all_elements_located.<locals>._predicatel  sK    	++W5H#&w5AA  $ O- 		s   !. . . 
;;r/   r1   s   ` r   "visibility_of_all_elements_locatedrm   S  s    20  r"   text_c                 (   ^ ^ S[         4U U4S jjnU$ )ai  An expectation for checking if the given text is present in the
specified element.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.
text_ : str
    The text to be present in the element.

Returns:
-------
boolean : True when the text is present, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_text_in_element = WebDriverWait(driver, 10).until(
... EC.text_to_be_present_in_element((By.CLASS_NAME, "foo"), "bar"))
r   c                 b   >  U R                   " T6 R                  nTU;   $ ! [         a     gf = frO   )r,   textr   r   element_textr)   rn   s     r   r    1text_to_be_present_in_element.<locals>._predicate  s;    	!..8==LL((- 		s   ! 
..r/   r)   rn   r    s   `` r   text_to_be_present_in_elementrv   y      00   r"   c                 (   ^ ^ S[         4U U4S jjnU$ )a{  An expectation for checking if the given text is present in the
element's value.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.
text_ : str
    The text to be present in the element's value.

Returns:
-------
boolean : True when the text is present, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_text_in_element_value = WebDriverWait(driver, 10).until(
... EC.text_to_be_present_in_element_value((By.CLASS_NAME, "foo"), "bar"))
r   c                 l   >  U R                   " T6 R                  S5      nTU;   $ ! [         a     gf = f)NvalueFr,   get_attributer   rr   s     r   r    7text_to_be_present_in_element_value.<locals>._predicate  s@    	!..8FFwOLL((- 		s   "& 
33r/   ru   s   `` r   #text_to_be_present_in_element_valuer~     s    40   r"   
attribute_c                 ,   ^ ^^ S[         4UU U4S jjnU$ )a  An expectation for checking if the given text is present in the
element's attribute.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.
attribute_ : str
    The attribute to check the text in.
text_ : str
    The text to be present in the element's attribute.

Returns:
-------
boolean : True when the text is present, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_text_in_element_attribute = WebDriverWait(driver, 10).until(
... EC.text_to_be_present_in_element_attribute((By.CLASS_NAME, "foo"),
... "bar", "baz"))
r   c                 t   >  U R                   " T6 R                  T5      nUc  gTU;   $ ! [         a     gf = frO   r{   )r   rs   r   r)   rn   s     r   r    ;text_to_be_present_in_element_attribute.<locals>._predicate  sI    	!..8FFzRL#L((- 		s   !* * 
77r/   )r)   r   rn   r    s   ``` r   'text_to_be_present_in_element_attributer     s    :0   r"   c                 $   ^  S[         4U 4S jjnU$ )aL  An expectation for checking whether the given frame is available to
switch to.

Parameters:
----------
locator : Union[Tuple[str, str], str]
    Used to find the frame.

Returns:
-------
boolean : True when the frame is available, False otherwise.

Example:
--------
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> WebDriverWait(driver, 10).until(
... EC.frame_to_be_available_and_switch_to_it("frame_name"))

Notes:
------
If the frame is available it switches the given driver to the
specified frame.
r   c                   >  [        T[        5      (       a>  [        T[        5      (       d)  U R                  R	                  U R
                  " T6 5        gU R                  R	                  T5        g! [         a     gf = f)NTF)
isinstancer   str	switch_toframer,   r   r-   s    r   r    :frame_to_be_available_and_switch_to_it.<locals>._predicate  sp    	'8,,Z5M5M  &&v':':G'DE    &&w/# 		s   AA2 A2 2
A?>A?r   r1   s   ` r   &frame_to_be_available_and_switch_to_itr     s    49  r"   c                 $   ^  S[         4U 4S jjnU$ )a~  An Expectation for checking that an element is either invisible or not
present on the DOM.

Parameters:
----------
locator : Union[WebElement, Tuple[str, str]]
    Used to find the element.

Returns:
-------
boolean : True when the element is invisible or not present, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_invisible = WebDriverWait(driver, 10).until(
... EC.invisibility_of_element_located((By.CLASS_NAME, "foo")))

Notes:
------
- In the case of NoSuchElement, returns true because the element is not
present in DOM. The try block checks if the element is present but is
invisible.
- In the case of StaleElementReference, returns true because stale element
reference implies that element is no longer visible.
r   c                    >  Tn[        U[        5      (       d  U R                  " U6 n[        USS9$ ! [        [
        4 a     gf = f)NFrj   T)r   r   r,   rP   r   r   )r   targetr)   s     r   r    3invisibility_of_element_located.<locals>._predicate/  sQ    	Ffj11,,f5&v%@@&(FG 	 	s   /3 AAr/   r1   s   ` r   invisibility_of_element_locatedr     s    @0  r"   c                     [        U 5      $ )ap  An Expectation for checking that an element is either invisible or not
present on the DOM.

Parameters:
----------
element : Union[WebElement, Tuple[str, str]]
    Used to find the element.

Returns:
-------
boolean : True when the element is invisible or not present, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_invisible_or_not_present = WebDriverWait(driver, 10).until(
... EC.invisibility_of_element(driver.find_element(By.CLASS_NAME, "foo")))
)r   )rS   s    r   invisibility_of_elementr   @  s    . +733r"   markc                 $   ^  S[         4U 4S jjnU$ )a5  An Expectation for checking an element is visible and enabled such that
you can click it.

Parameters:
----------
mark : Union[WebElement, Tuple[str, str]]
    Used to find the element.

Returns:
-------
WebElement : The WebElement once it is located and clickable.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> element = WebDriverWait(driver, 10).until(
... EC.element_to_be_clickable((By.CLASS_NAME, "foo")))
r   c                    > Tn[        U[        5      (       d  U R                  " U6 n[        U5      " U 5      nU(       a  UR	                  5       (       a  U$ grO   )r   r   r,   r[   
is_enabled)r   r   rS   r   s      r   r    +element_to_be_clickable.<locals>._predicatet  sM    &*--((&1F'/w))++Nr"   r/   )r   r    s   ` r   element_to_be_clickabler   Z  s    40  r"   c                    ^  U 4S jnU$ )a  Wait until an element is no longer attached to the DOM.

Parameters:
----------
element : WebElement
    The element to wait for.

Returns:
-------
boolean : False if the element is still attached to the DOM, true otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_element_stale = WebDriverWait(driver, 10).until(
... EC.staleness_of(driver.find_element(By.CLASS_NAME, "foo")))
c                 H   >  TR                  5         g! [         a     gf = fNFT)r   r   rV   s    r   r     staleness_of.<locals>._predicate  s)    	 - 		s    
!!rY   rZ   s   ` r   staleness_ofr     s    * r"   c                    ^  U 4S jnU$ )a  An expectation for checking the selection is selected.

Parameters:
----------
element : WebElement
    The WebElement to check.

Returns:
-------
boolean : True if the element is selected, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_selected = WebDriverWait(driver, 10).until(
... EC.element_to_be_selected(driver.find_element(By.CLASS_NAME, "foo")))
c                 $   > TR                  5       $ r   is_selectedrV   s    r   r    *element_to_be_selected.<locals>._predicate  s    ""$$r"   rY   rZ   s   ` r   element_to_be_selectedr     s    *% r"   c                 $   ^  S[         4U 4S jjnU$ )a  An expectation for the element to be located is selected.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.

Returns:
-------
boolean : True if the element is selected, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_selected = WebDriverWait(driver, 10).until(
... EC.element_located_to_be_selected((By.CLASS_NAME, "foo")))
r   c                 >   > U R                   " T6 R                  5       $ r   )r,   r   r-   s    r   r    2element_located_to_be_selected.<locals>._predicate  s    ""G,88::r"   r/   r1   s   ` r   element_located_to_be_selectedr     s    *;0 ; r"   r   c                    ^ ^ U U4S jnU$ )aF  An expectation for checking if the given element is selected.

Parameters:
----------
element : WebElement
    The WebElement to check.
is_selected : bool

Returns:
-------
boolean : True if the element's selection state is the same as is_selected

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_selected = WebDriverWait(driver, 10).until(
... EC.element_selection_state_to_be(driver.find_element(By.CLASS_NAME, "foo"), True))
c                 *   > TR                  5       T:H  $ r   r   )rW   rS   r   s    r   r    1element_selection_state_to_be.<locals>._predicate  s    ""$33r"   rY   )rS   r   r    s   `` r   element_selection_state_to_ber     s    ,4 r"   c                 (   ^ ^ S[         4UU 4S jjnU$ )ad  An expectation to locate an element and check if the selection state
specified is in that state.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.
is_selected : bool

Returns:
-------
boolean : True if the element's selection state is the same as is_selected

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_selected = WebDriverWait(driver, 10).until(
... EC.element_located_selection_state_to_be((By.CLASS_NAME, "foo"), True))
r   c                 j   >  U R                   " T6 nUR                  5       T:H  $ ! [         a     gf = frO   )r,   r   r   )r   rS   r   r)   s     r   r    9element_located_selection_state_to_be.<locals>._predicate  s>    	))73G&&(K77- 		   !% 
22r/   )r)   r   r    s   `` r   %element_located_selection_state_to_ber     s    20   r"   num_windowsc                 $   ^  S[         4U 4S jjnU$ )a  An expectation for the number of windows to be a certain value.

Parameters:
----------
num_windows : int
    The expected number of windows.

Returns:
-------
boolean : True when the number of windows matches, False otherwise.

Example:
--------
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_number_of_windows = WebDriverWait(driver, 10).until(
... EC.number_of_windows_to_be(2))
r   c                 4   > [        U R                  5      T:H  $ r   lenwindow_handles)r   r   s    r   r    +number_of_windows_to_be.<locals>._predicate)  s    6(()[88r"   r   )r   r    s   ` r   number_of_windows_to_ber     s    (99 9 r"   current_handlesc                 $   ^  S[         4U 4S jjnU$ )a9  An expectation that a new window will be opened and have the number of
windows handles increase.

Parameters:
----------
current_handles : List[str]
    The current window handles.

Returns:
-------
boolean : True when a new window is opened, False otherwise.

Example:
--------
>>> from selenium.webdriver.support.ui import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_new_window_opened = WebDriverWait(driver, 10).until(
... EC.new_window_is_opened(driver.window_handles))
r   c                 F   > [        U R                  5      [        T5      :  $ r   r   )r   r   s    r   r    (new_window_is_opened.<locals>._predicateE  s    6(()C,@@@r"   r   )r   r    s   ` r   new_window_is_openedr   /  s    ,A9 A r"   c                      S[         4S jn U $ )a  An expectation for checking if an alert is currently present and
switching to it.

Returns:
-------
Alert : The Alert once it is located.

Example:
--------
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> alert = WebDriverWait(driver, 10).until(EC.alert_is_present())

Notes:
------
If the alert is present it switches the given driver to it.
r   c                 P     U R                   R                  $ ! [         a     gf = frO   )r   alertr   )r   s    r   r    $alert_is_present.<locals>._predicate^  s+    	##)))& 		s    
%%r   )r    s    r   alert_is_presentr   K  s    &9  r"   c                 (   ^ ^ S[         4UU 4S jjnU$ )ao  An expectation for checking if the given attribute is included in the
specified element.

Parameters:
----------
locator : Tuple[str, str]
    Used to find the element.
attribute_ : str
    The attribute to check.

Returns:
-------
boolean : True when the attribute is included, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> is_attribute_in_element = WebDriverWait(driver, 10).until(
... EC.element_attribute_to_include((By.CLASS_NAME, "foo"), "bar"))
r   c                 j   >  U R                   " T6 R                  T5      nUS L$ ! [         a     gf = frO   r{   )r   element_attributer   r)   s     r   r    0element_attribute_to_include.<locals>._predicate  sA    	 & 3 3W = K KJ W$D00- 		r   r/   )r)   r   r    s   `` r   element_attribute_to_includer   g  rw   r"   expected_conditionsc                  $   ^  S[         4U 4S jjnU$ )a  An expectation that any of multiple expected conditions is true.

Parameters:
----------
expected_conditions : Callable[[D], T]
    The list of expected conditions to check.

Returns:
-------
T : The result of the first matching condition, or False if none do.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> element = WebDriverWait(driver, 10).until(
... EC.any_of(EC.presence_of_element_located((By.NAME, "q"),
... EC.visibility_of_element_located((By.NAME, "q"))))

Notes:
------
Equivalent to a logical 'OR'. Returns results of the first matching
condition, or False if none do.
r   c                 b   > T H  n U" U 5      nU(       a  Us  $ M     g! [          a     M)  f = frO   r   r   expected_conditionresultr   s      r   any_of_condition any_of.<locals>.any_of_condition  sC    "5+F3!M  #6  & s    
..r   )r   r   s   ` r   any_ofr     s    6  r"   c                  $   ^  S[         4U 4S jjnU$ )aJ  An expectation that all of multiple expected conditions is true.

Parameters:
----------
expected_conditions : Callable[[D], Union[T, Literal[False]]]
    The list of expected conditions to check.

Returns:
-------
List[T] : The results of all the matching conditions, or False if any do not.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> elements = WebDriverWait(driver, 10).until(
... EC.all_of(EC.presence_of_element_located((By.NAME, "q"),
... EC.visibility_of_element_located((By.NAME, "q"))))

Notes:
------
Equivalent to a logical 'AND'.
Returns: When any ExpectedCondition is not met: False.
When all ExpectedConditions are met: A List with each ExpectedCondition's return value.
r   c                    > / nT H&  n U" U 5      nU(       d    gUR                  U5        M(     U$ ! [         a       gf = frO   )appendr   )r   resultsr   r   r   s       r   all_of_condition all_of.<locals>.all_of_condition  sO    "5+F3 v& #6  & s   22
A A r   )r   r   s   ` r   all_ofr     s    <
 
 r"   c                  $   ^  S[         4U 4S jjnU$ )a  An expectation that none of 1 or multiple expected conditions is true.

Parameters:
----------
expected_conditions : Callable[[D], Any]
    The list of expected conditions to check.

Returns:
-------
boolean : True if none of the conditions are true, False otherwise.

Example:
--------
>>> from selenium.webdriver.common.by import By
>>> from selenium.webdriver.support.ui import WebDriverWait
>>> from selenium.webdriver.support import expected_conditions as EC
>>> element = WebDriverWait(driver, 10).until(
... EC.none_of(EC.presence_of_element_located((By.NAME, "q"),
... EC.visibility_of_element_located((By.NAME, "q"))))

Notes:
------
Equivalent to a logical 'NOT-OR'. Returns a Boolean
r   c                 ^   > T H  n U" U 5      nU(       a    gM     g! [          a     M'  f = fr   r   r   s      r   none_of_condition"none_of.<locals>.none_of_condition  sA    "5+F3   #6  & s   
,,r   )r   r   s   ` r   none_ofr     s    4!  r"   )T)<rA   collections.abcr   typingr   r   r   r   r   r	   r
   selenium.common.exceptionsr   r   r   r   r   selenium.webdriver.common.alertr   #selenium.webdriver.remote.webdriverr   r   r   r   r0   r   boolr$   r(   r2   r<   rD   rH   rL   rR   r[   rP   rc   rg   rm   rv   r~   r   r   r   r   r   r   r   r   r   r   intr   r   r   r   r   r   r   rY   r"   r   <module>r      s(  $ 
 $        > = ; E 9 1 9 :
 CLCLi34 C Hi[$%67 &# (I;+<"= (sCx XG\F]_iFi=j 8c h	{D'89 ( 9+t*;!< .3 8YK$56 &S Xyk4&78 (38_$%uWU^Z-G'HHID: (C5%PZ@Z:[3[*\ DF F FwW\~_iOiIj F$eCHo (LaKbdhisdtKtBu 8c3h HNcMdfjkufvMvDw 8#38_#$%uT*-=wu~-M'NNO#L5c? 3 8UjTkmqTqKr D!38_!%(!$%t+,!H&38_&*-&69&$%t+,&R$E%S/3:N4O $T\^g]hjn]nTo $N.:uS#X./.$%uZ-='>>?.b4:uS#X./4$%uZ-='>>?44#

E#s(O+
,#$%uWU^Z-G'HHI#L* 3%+)> @J 8SE4K3H 6E#s(O J_I`bfIf@g 6: D XWZV[]aVaMb 8 38_ +/ $%t+, F 9+t:K1L 4$s) )dAR8S 8(I;eWU^6K0L#LM 8%S/ s xYnXoquXuOv D%1#q&!1 %hsE'RW.Z[J[D\?\6] %P*"A3a.?(@#@A*qc5a'%.0112*Z$(A38"4 $1#t)9L $r"   