# This file was generated by Nuitka

# Stubs included by default
from __future__ import annotations
from functools import wraps
from loguru import logger
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, TimeoutException, UnexpectedTagNameException
from selenium.webdriver import ActionChains
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.ui import Select, WebDriverWait
from typing import Any, Dict, List, Literal, Optional, Tuple, Union
from typing_extensions import Self
from webdriver_manager.chrome import ChromeDriverManager
import json
import os
import pandas
import pathlib
import pyautogui
import selenium
import shutil
import tempfile
import time
import win32com.client
import win32gui
import winreg

ANCHOR_MAP = {'topLeft': (0, 0), 'topCenter': (0.5, 0), 'topRight': (1, 0), 'middleLeft': (0, 0.5), 'middleCenter': (0.5, 0.5), 'middleRight': (1, 0.5), 'bottomLeft': (0, 1), 'bottomCenter': (0.5, 1), 'bottomRight': (1, 1)}
KEY_MAP = {'ctrl': Keys.CONTROL, 'alt': Keys.ALT, 'shift': Keys.SHIFT}
class Buttons(Keys):
def find_windows_by_title_prefix(name_pattern: Any) -> Any:
    ...

def find_child_window(parent_hwnd: Any) -> Any:
    ...

def get_render_window_position(title: Any) -> Any:
    ...

def web_element_with_preprocess(func: Any) -> Any:
    ...

class WebElementMeta(type):
    def __new__(cls: cls, name: Any, bases: Any, attrs: Any) -> Any: ...

class WebElement:
    def __init__(self: Self, browser: Any, element: Any, iframe_path: Optional[List[str]]) -> None: ...
    def __str__(self: Self) -> Any: ...
    def __repr__(self: Self) -> Any: ...
    def _switch_iframe(self: Self) -> Any: ...
    def _switch_iframe_back(self: Self) -> Any: ...
    def _simulate_click(self: Self, button: Any, keys: list[str], operation: str, delay_after: float, move_mouse: Any, anchor: Any) -> Any: ...
    def _click_element(self: Self, button: str, keys: list[str], operation: str, delay_after: float, anchor: tuple[str, int, int]) -> Any: ...
    def parent(self: Self) -> Any: ...
    def children(self: Self) -> Any: ...
    def child_at(self: Self, index: Any) -> Any: ...
    def previous_sibling(self: Self) -> Any: ...
    def next_sibling(self: Self) -> Any: ...
    def highlight_element(self: Self) -> Any: ...
    def click(self: Self, button: str, simulative: Any, move_mouse: Any, keys: list[str], operation: str, delay_after: float, anchor: tuple[str, int, int]) -> Any: ...
    def dblclick(self: Self, simulative: Any, delay_after: Any, move_mouse: Any, anchor: Any) -> Any: ...
    def input_text(self: Self, text: Any, append: Any, delay_after: Any) -> Any: ...
    def clipboard_input(self: Self, text: str, append: Any, delay_after: Any) -> Any: ...
    def hover(self: Self, simulative: Any, delay_after: Any) -> Any: ...
    def get_text(self: Self) -> Any: ...
    def get_html(self: Self) -> Any: ...
    def get_value(self: Self) -> Any: ...
    def set_value(self: Self, value: str) -> Any: ...
    def check(self: Self, mode: Any, delay_after: Any) -> Any: ...
    def select_value(self: Self, value: str | int, delay_after: Any) -> Any: ...
    def select_by_visible_text(self: Self, text: str, delay_after: Any) -> Any: ...
    def select_by_index(self: Self, index: int, delay_after: Any) -> Any: ...
    def select_multiple(self: Self, items: List[str], mode: Any, append: Any, delay_after: Any) -> Any: ...
    def select_multiple_by_index(self: Self, indexes: List[int], append: Any, delay_after: Any) -> Any: ...
    def get_select_options(self: Self) -> Any: ...
    def set_attribute(self: Self, name: str, value: str) -> Any: ...
    def get_attribute(self: Self, name: str) -> Any: ...
    def get_all_attributes(self: Self) -> Any: ...
    def get_bounding(self: Self, to96dpi: Any) -> Any: ...
    def extract_table(self: Self) -> List[pd.DataFrame]: ...
    def screenshot(self: Self, image_path: str | pathlib.Path) -> pathlib.Path: ...
    def screenshot_as_base64(self: Self) -> str: ...
    def is_checked(self: Self) -> bool: ...
    def is_enabled(self: Self) -> Any: ...
    def is_displayed(self: Self) -> Any: ...
    def is_clickable(self: Self) -> Any: ...
    def is_element_ready(self: Self) -> Any: ...
    def drag_to(self: Self, simulative: Any, behavior: Any, top: Any, left: Any, delay_after: Any) -> Any: ...
    def set_slider_value(self: Self, target_value: Any, step: Any, min_val: Any, max_val: Any) -> Any: ...
    def get_all_select_items(self: Self) -> List[str]: ...
    def get_selected_item(self: Self) -> List[str]: ...

def wrap_with_preprocess(func: Any) -> Any:
    ...

class WebBrowserMeta(type):
    def __new__(cls: cls, name: Any, bases: Any, attrs: Any) -> Any: ...

class WebBrowser:
    def __init__(self: Self, driver: Any, handle: Any) -> None: ...
    def __str__(self: Self) -> Any: ...
    def __repr__(self: Self) -> Any: ...
    def _switch_to_matched_window(self: Self) -> Any: ...
    def get_url(self: Self) -> Any: ...
    def get_title(self: Self) -> Any: ...
    def get_text(self: Self) -> Any: ...
    def get_html(self: Self) -> Any: ...
    def navigate(self: Self, url: Any, load_timeout: Any) -> Any: ...
    def go_back(self: Self) -> Any: ...
    def go_forward(self: Self) -> Any: ...
    def reload(self: Self) -> Any: ...
    def stop_reload(self: Self) -> Any: ...
    def is_load_complete(self: Self) -> Any: ...
    def wait_load_completed(self: Self, timeout: Any) -> Any: ...
    def close(self: Self) -> Any: ...
    def execute_javascript(self: Self, code: Any, argument: Any) -> Any: ...
    def scroll_to(self: Self, location: Literal['bottom', 'top', 'point'], behavior: Literal['instant', 'smooth'], top: int, left: int) -> None: ...
    def wait_appear(self: Self, by: str, value: str, iframe_xpath: str | List, timeout: int, after_wait: Any) -> Any: ...
    def wait_disappear(self: Self, by: str, selector: str, timeout: int) -> bool: ...
    def find_all_elements(self: Self, by: str, selector: str, timeout: int) -> List[WebElement]: ...
    def is_element_displayed(self: Self, by: str, selector: str) -> bool: ...
    def get_cookies(self: Self, kv_mode: bool, to_file: str | pathlib.Path) -> List[Dict] | Dict: ...
    def set_cookie(self: Self, name: Any, value: Any, expires: Any, path: Any, httpOnly: Any, secure: Any) -> bool: ...
    def remove_cookie(self: Self, name: str) -> Any: ...
    def remove_all_cookies(self: Self) -> Any: ...
    def find_element(self: Self, by: str, value: str, iframe_xpath: str) -> WebElement: ...
    def exists(self: Self, by: Any, value: Any, timeout: Any) -> bool: ...
    def get_page_source(self: Self) -> Any: ...

class Web:
    def __init__(self: Self, user_data_dir: Any, download_dir: Any, implicitly_wait: float) -> None: ...
    def _read_preference(self: Self) -> Any: ...
    def _write_preference(self: Self, preferences_dict: Any) -> Any: ...
    def _preference(self: Self) -> Any: ...
    def _match_by_url(self: Self, url: Any, use_wildcard: Any) -> Any: ...
    def _match_by_title(self: Self, title: Any, use_wildcard: Any) -> Any: ...
    def _open_new_page(self: Self, url: Any, load_timeout: Any, stop_if_timeout: Any) -> Any: ...
    def _is_cookie_match_url(self: Self, cookie: Dict, url: str) -> bool: ...
    def _is_cookie_match_domain(self: Self, cookie: Dict, domain: str) -> bool: ...
    def _set_automatic_download(self: Self, scheme: Any, domain: Any, port: Any) -> Any: ...
    def _get_chrome_path(self: Self) -> Any: ...
    def _browser_config(self: Self, url: Any, window_scale: Any, maximized: Any, ignore_certificate_errors: Any, disable_download_prompt: Any, allow_multiple_downloads: Any) -> Any: ...
    def _get_driver(self: Self) -> Any: ...
    def create(self: Self, url: Any, window_scale: Any, maximized: Any, ignore_certificate_errors: Any, disable_download_prompt: Any, allow_multiple_downloads: Any, automation_download: Optional[Dict[str, str]]) -> WebBrowser: ...
    def get(self: Self, title: Any, url: Any, use_wildcard: Any, timeout: Any) -> WebBrowser: ...
    def get_active(self: Self) -> WebBrowser: ...
    def get_all(self: Self) -> List[WebBrowser]: ...
    def close_all(self: Self) -> Any: ...
    def quit(self: Self) -> Any: ...


__name__ = ...



# Modules used internally, to allow implicit dependencies to be seen:
import json
import os
import time
import pathlib
import tempfile
import winreg
import functools
import shutil
import typing
import selenium
import pandas
import pyautogui
import win32com
import win32com.client
import win32gui
import loguru
import loguru.logger
import selenium.webdriver
import selenium.common
import selenium.common.exceptions
import selenium.webdriver.chrome
import selenium.webdriver.chrome.service
import selenium.webdriver.common
import selenium.webdriver.common.by
import selenium.webdriver.support
import selenium.webdriver.support.expected_conditions
import selenium.webdriver.support.ui
import selenium.webdriver.ActionChains
import selenium.webdriver.common.keys
import webdriver_manager
import webdriver_manager.chrome
import random
import ntpath