Remote WebDriver

Dependencies

To use Remote WebDriver, the python bindings for Selenium 3 or Selenium 4 must be installed.

When splinter is installed via pip, the selenium3 or selenium4 extra argument can be provided. This will automatically install the latest version of Selenium 3 or Selenium 4, respectively.

python -m pip install splinter[selenium3]

Setting up the Remote WebDriver

To use Remote WebDriver, you need to have access to a Selenium remote WebDriver server. Setting up one of these servers is beyond the scope of this document. However, some companies provide access to a Selenium Grid as a service.

Usage

To use the Remote WebDriver, use driver_name="remote" when you create the Browser instance.

The browser_name argument should then be used to specify the web browser. The other arguments match Selenium’s Remote WebDriver arguments.

Desired Capabilities will be set automatically based on Selenium’s defaults. These can be expanded and/or replaced by providing your own.

The following example uses LambdaTest (a company that provides Selenium Remote WebDriver servers as a service) to request an Chrome version 99 browser instance running on Windows 11.

# Specify the server URL
remote_server_url = 'http://YOUR_LT_USERNAME:YOUR_LT_ACCESS_KEY@@hub.lambdatest.com/wd/hub'

with Browser(
    driver_name="remote",
    browser='Chrome',
    command_executor=remote_server_url,
    desired_capabilities = {
       'platform': 'Windows 11',
       'version': '99.0',
       'name': 'Test of Chrome 99 on WINDOWS',
    },
    keep_alive=True,
) as browser:

    browser.visit("https://www.lambdatest.com/selenium-playground/")
    browser.find_by_text('Simple Form Demo').first.click()

The following example uses Sauce Labs (a company that provides Selenium Remote WebDriver servers as a service) to request an Internet Explorer 9 browser instance running on Windows 7.

# Specify the server URL
remote_server_url = 'http://YOUR_SAUCE_USERNAME:YOUR_SAUCE_ACCESS_KEY@ondemand.saucelabs.com:80/wd/hub'

with Browser(
    driver_name="remote",
    browser='internetexplorer',
    command_executor=remote_server_url,
    desired_capabilities = {
      'platform': 'Windows 7',
      'version': '9',
      'name': 'Test of IE 9 on WINDOWS',
    },
    keep_alive=True,
) as browser:
    print("Link to job: https://saucelabs.com/jobs/{}".format(
          browser.driver.session_id))
    browser.visit("https://splinter.readthedocs.io")
    browser.find_by_text('documentation').first.click()