API Documentation

Configurator

class selenium_configurator.configurator.Configurator(config)[source]

This Configurator class is the entry point to prepare a selenium web driver list from a configuration string, file or object.

A short example to launch on a local Firefox would be:

from selenium_configurator.configurator import Configurator

configurator = Configurator(
    {
        'drivers': [
            {
                'class': 'selenium_configurator.drivers.local.Firefox',
            }
        ],
    }
)
drivers = configuration.get_drivers()
for driver in drivers:
    driver.selenium.get('https://anybox.fr/)
    driver.quit()
classmethod from_file(path)[source]

Create a Configurator from a .yaml or .json file

Parameters:path – to the config file
Returns:An instance of Configurator
classmethod from_string(yaml_conf)[source]
Create a Configurator from a string that expected to be
a yaml or json format.
Parameters:yaml_conf – A string
Returns:An instance of Configurator
get_drivers()[source]

Get the list of driver instance from the configuration description provide to that configurator class

Returns:A list of drivers instances that contains selenium instance ready to start,

Driver

class selenium_configurator.driver.Driver(conf, global_capabilities=None, name=None)[source]

Abstract class to define and ensure to expose uniform public API

We mainly recommand to use get_web_drivers class method to instanciate Drivers. For instance remote webdrivers that use service like selenium Grid will return multiple instance of Driver..

classmethod get_web_drivers(conf, global_capabilities=None)[source]

Class method to prepare Driver(s) instance according current Driver class and given settings.

Parameters:
  • conf – a dict that contains the Driver configuration
  • global_capabilities – Capabilities shared over Drivers configuration
Returns:

a list of Driver

global_capabilities = None

Capabilities shared between drivers

name
Returns:the technical name that describe the related webdriver
quit()[source]

Prefer this way to quit() a selenium to properly re-open the browser in case it was closed

selenium

Get the instance of webdriver, it starts the browser if the webdriver is not yet instantied

Returns:a `selenium instance <http://selenium-python.readthedocs.org/

api.html#module-selenium.webdriver.remote.webdriver>`

class selenium_configurator.driver.DriverFactory[source]

This class parse the config dict to generate the list of Driver

Local

Local driver to launch browser on the current computer.

While instantiate a webdriver you can request for different capabilities, to change available behavior of the browser.

class selenium_configurator.drivers.local.Chrome(conf, global_capabilities=None, name=None)[source]

Local Chrom/Chromium webdriver

Configuration settings:

{
    'class': 'selenium_configurator.drivers.local.Chrome',
    'capabilities': {
        ...
    }
}

Specific capabilities

class selenium_configurator.drivers.local.Firefox(conf, global_capabilities=None, name=None)[source]

Local Firefox webdriver

Configuration settings:

{
    'class': 'selenium_configurator.drivers.local.Firefox',
    'capabilities': {
        ...
    }
}

Specific capabilities

class selenium_configurator.drivers.local.Ie(conf, global_capabilities=None, name=None)[source]

Local Internet Explorer webdriver

Configuration settings:

{
    'class': 'selenium_configurator.drivers.local.Ie',
    'capabilities': {
        ...
    }
}

Specific capabilities

class selenium_configurator.drivers.local.Opera(conf, global_capabilities=None, name=None)[source]

Local Opera webdriver

Configuration settings:

{
    'class': 'selenium_configurator.drivers.local.Opera',
    'capabilities': {
        ...
    }
}
class selenium_configurator.drivers.local.Phantomjs(conf, global_capabilities=None, name=None)[source]

Local phantomjs webdriver

Configuration settings:

{
    'class': 'selenium_configurator.drivers.local.Phantomjs',
    'capabilities': {
        ...
    }
}
class selenium_configurator.drivers.local.Safari(conf, global_capabilities=None, name=None)[source]

Local Safari webdriver

Configuration settings:

{
    'class': 'selenium_configurator.drivers.local.Safari',
    'capabilities': {
        ...
    }
}

Specific capabilities

Remote

class selenium_configurator.drivers.remote.Grid(grid_conf, desired_capabilities, global_capabilities=None, name=None)[source]

Grid Driver class to use over browsers over a Selenium Grid

It give you the availybility to request multiple browsers against one Grid server.

Configuration settings to get 1 Chrome and 1 Firefox over a Grid service:

conf = {
    'class': 'selenium_configurator.drivers.remote.Grid',
    'capabilities': {
        # Capabilities shared with request browser and overload
        # general capabilities
    },
    "request_drivers": [
        {
            "browserName": "firefox",
            "platform": "LINUX",
            "version": "",
            # other capabilities
        },
        {
            "browserName": "chrome",
            "platform": "LINUX",
            "version": "",
        },
    ]
}
from selenium_configurator.driver.remote import Grid
driver_list = Grid.get_web_drivers(conf)

Available request drivers capabilities

classmethod get_web_drivers(conf, global_capabilities=None)[source]

Prepare 1 selenium driver instance per request browsers

Parameters:
  • conf
  • global_capabilities
Returns: