πŸš—Driver

Configure the driver via the pylenium.json or the CLI.

The Driver Settings

Supported Drivers:

  • Chrome

  • Edge

  • Safari

  • Firefox

  • Internet Explorer

Let's take a look at the Driver Settings in pylenium.json

pylenium.json
"driver": {
    "browser": "chrome",
    "remote_url": "",
    "wait_time": 10,
    "page_load_wait_time": 0,
    "options": [],
    "capabilities": {},
    "experimental_options": null,
    "extension_paths": [],
    "webdriver_kwargs": {},
    "seleniumwire_enabled": false,
    "seleniumwire_options": {},
    "local_path": ""
}

Let's break each one of these down so you know what they are for and how you can configure them.

browser

Default is chrome

This is the browser name - "chrome" or "firefox" or "ie" or "safari" or "edge"

pylenium.json
"driver": {
    "browser": "firefox"
}
Terminal
pytest tests --browser=firefox

remote_url

Default is empty or""

This is used to connect to things like Selenium Grid.

Check out Run Tests in Containers for an example of how to do this locally with Docker

pylenium.json
"driver": {
    "remote_url": "http://localhost:4444/wd/hub"
}
Terminal
pytest tests --remote_url="http://localhost:4444/wd/hub"

wait_time

Default is 10

The global number of seconds for actions to wait for.

pylenium.json
"driver": {
    "wait_time": 7
}
Terminal
You cannot set this from the command line

page_load_wait_time

Default is 0

The amount of time to wait for the page to load before raising an error.

# set it globally in CLI
--page_load_wait_time 10
// set it globally in pylenium.json
{
    "driver": {
        "page_load_wait_time": 10
    }
}
# override the global page_load_wait_time just for the current test
py.set_page_load_timeout(10)

options

Default is empty or []

A list of browser options to include when instantiating Pylenium.

pylenium.json
"driver": {
    "options": ["headless", "incognito"]
}
Terminal
pytest tests --options="headless, incognito"

experimental_options

Default is null or None

A list of experimental options to include in the driver. These can only be added using pylenium.json

{
    "experimental_options": [
        {"useAutomationExtension": false},
        {"otherName": "value"}
    ]
}

capabilities

Default is empty or {}

A dictionary of the desired capabilities to include when instantiating Pylenium.

pylenium.json
{
    "driver": {
        "capabilities": {
            "enableVNC": true,
            "enableVideo": false,
            "name": "value"
        }
    }
}
Terminal
pytest tests --caps = '{"name": "value", "boolean": true}'

extension_paths

The list of extensions to be included when instantiating Pylenium.

Default is empty or []

{
    "driver": {
        "extension_paths": ["path_to_crx.crx", "other-path.crx"]
    }
}

seleniumwire_enabled

Default is false

Use a SeleniumWire-enabled Chrome or Firefox driver.

pylenium.json
"driver": {
    "seleniumwire_enabled": false
}
Terminal
pytest --seleniumwire_enabled=true

seleniumwire_options

Default is {}

Options for the SeleniumWire-enabled Chrome or Firefox driver.

pylenium.json
"driver": {
    "seleniumwire_options": {}
}

See their docs on how to use it and the options you can set

Last updated