Use YAML files to store environment URLs, browser types, and Selenium Grid hub URL.
# config/config.yaml
environment: "https://example.com"
browser: "chrome"
grid_hub_url: "http://localhost:4444/wd/hub"
Use pytest fixtures in conftest.py to read config and create remote WebDriver sessions connected to the grid hub.
import pytest
import yaml
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
@pytest.fixture(scope='session')
def config():
with open('config/config.yaml') as f:
return yaml.safe_load(f)
@pytest.fixture
def driver(config):
browser = config['browser']
hub_url = config['grid_hub_url']
if browser == 'chrome':
capabilities = DesiredCapabilities.CHROME.copy()
elif browser == 'firefox':
capabilities = DesiredCapabilities.FIREFOX.copy()
else:
capabilities = DesiredCapabilities.CHROME.copy()
driver = webdriver.Remote(command_executor=hub_url, desired_capabilities=capabilities)
yield driver
driver.quit()