Manager API

je_web_runner.manager.webrunner_manager

Class: WebdriverManager

Manages multiple WebDriver instances for parallel browser automation.

Attributes:

  • webdriver_wrapper (WebDriverWrapper): WebDriver operations wrapper

  • webdriver_element (WebElementWrapper): element operations wrapper

  • current_webdriver (WebDriver | None): currently active WebDriver

Methods:

def new_driver(self, webdriver_name: str, options: List[str] = None, **kwargs) -> None:
    """
    Create a new WebDriver instance and add it to the managed list.

    :param webdriver_name: browser name [chrome, chromium, firefox, edge, ie]
    :param options: browser startup arguments (e.g., ["--headless"])
    :param kwargs: additional parameters passed to set_driver()
    """

def change_webdriver(self, index_of_webdriver: int) -> None:
    """
    Switch the active WebDriver to the one at the given index.

    :param index_of_webdriver: index in the internal WebDriver list
    """

def close_current_webdriver(self) -> None:
    """Close and remove the currently active WebDriver."""

def close_choose_webdriver(self, webdriver_index: int) -> None:
    """
    Close a specific WebDriver by index.

    :param webdriver_index: index in the internal WebDriver list
    """

def quit(self) -> None:
    """
    Close and quit ALL managed WebDriver instances.
    Also cleans up all TestObjectRecord entries.
    """

Factory Function

def get_webdriver_manager(webdriver_name: str, **kwargs) -> WebdriverManager:
    """
    Get the global WebdriverManager and create a new driver.

    :param webdriver_name: browser name [chrome, chromium, firefox, edge, ie]
    :param kwargs: additional parameters (e.g., options)
    :return: global WebdriverManager instance
    """

Global Instance

web_runner = WebdriverManager()