import contextlib from typing import TYPE_CHECKING if TYPE_CHECKING: from selenium.webdriver.remote.webdriver import WebDriver class IDriver(): browser: "WebDriver" def __del__(self): self.terminate() def terminate(self): self.browser.quit() def new_tab(self) -> str: ... def change_tab(self, tab_handler: str): ... def open_url(self, url: str, tab_handler: str = ""): ... @contextlib.contextmanager def op_tab(self, tab_handler: str): cur_handle = self.browser.current_window_handle if tab_handler == "": tab_handler = cur_handle try: self.change_tab(tab_handler) yield self finally: self.change_tab(cur_handle) def refresh(self, tab_handler: str = ""): ... def screenshot(self, tab_handler: str = "") -> str: ...