WebDriver Manager

Overview

WebdriverManager manages multiple WebDriver instances for parallel browser automation. It maintains a list of active WebDriver instances and provides methods to create, switch between, and close them.

The global instance web_runner is used internally. Access it via the factory function get_webdriver_manager().

Creating a Manager

from je_web_runner import get_webdriver_manager

# Create with Chrome
manager = get_webdriver_manager("chrome")

# Create with Firefox and options
manager = get_webdriver_manager("firefox", options=["--headless"])

The factory function creates a new WebDriver and returns the global WebdriverManager instance.

Managing Multiple Browsers

manager = get_webdriver_manager("chrome")

# Add a second browser instance
manager.new_driver("firefox")

# Switch to Chrome (index 0)
manager.change_webdriver(0)
manager.webdriver_wrapper.to_url("https://example.com")

# Switch to Firefox (index 1)
manager.change_webdriver(1)
manager.webdriver_wrapper.to_url("https://google.com")

# Close Firefox only
manager.close_choose_webdriver(1)

# Close the current browser
manager.close_current_webdriver()

# Close and quit ALL browsers
manager.quit()

Key Attributes

Attribute

Type

Description

webdriver_wrapper

WebDriverWrapper

Wrapper for WebDriver operations

webdriver_element

WebElementWrapper

Wrapper for element operations

current_webdriver

WebDriver | None

Currently active WebDriver instance

Methods

Method

Parameters

Description

new_driver()

webdriver_name: str, options: List[str] = None, **kwargs

Create a new WebDriver instance

change_webdriver()

index_of_webdriver: int

Switch to a WebDriver by index

close_current_webdriver()

Close the current WebDriver

close_choose_webdriver()

webdriver_index: int

Close a WebDriver by index

quit()

Close and quit all WebDrivers

Note

When quit() is called, it also cleans up all saved TestObjectRecord entries.