Skip to main content

Introduction

Python language bindings for Selenium WebDriver.

The selenium package is used to automate web browser interaction from Python.

Home:

https://selenium.dev

GitHub:

https://github.com/SeleniumHQ/Selenium

PyPI:

https://pypi.org/project/selenium

IRC/Slack:

https://selenium.dev/support/#ChatRoom

Docs:

https://selenium.dev/selenium/docs/api/py

API Reference:

https://selenium.dev/selenium/docs/api/py/api.html

Updated documentation published with each commit is available at: readthedocs.io


Supported Python Versions

  • Python 3.10+

Supported Browsers

Several browsers are supported, as well as the Remote protocol:

  • Chrome

  • Edge

  • Firefox

  • Safari

  • WebKitGTK

  • WPEWebKit

Installing

Install or upgrade the Python bindings with pip.

Latest official release:

pip install -U selenium

Nightly development release:

pip install -U --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ selenium

Note: you should consider using a virtual environment to create an isolated Python environment for installation.

Drivers

Selenium requires a driver to interface with the chosen browser (chromedriver, edgedriver, geckodriver, etc).

In older versions of Selenium, it was necessary to install and manage these drivers yourself. You had to make sure the driver executable was available on your system PATH, or specified explicitly in code. Modern versions of Selenium handle browser and driver installation for you with Selenium Manager. You generally don’t have to worry about driver installation or configuration now that it’s done for you when you instantiate a WebDriver. Selenium Manager works with most supported platforms and browsers. If it doesn’t meet your needs, you can still install and specify browsers and drivers yourself.

Links to some of the more popular browser drivers:

Chrome:

https://developer.chrome.com/docs/chromedriver

Edge:

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver

Firefox:

https://github.com/mozilla/geckodriver

Safari:

https://webkit.org/blog/6900/webdriver-support-in-safari-10

Example 0:

  • launch a new Chrome browser

  • load a web page

  • close the browser

from selenium import webdriver


driver = webdriver.Chrome()
driver.get("https://selenium.dev")
driver.quit()

Example 1:

  • launch a new Chrome browser

  • load the Selenium documentation page

  • find the “WebDriver” link

  • click the “WebDriver” link

  • close the browser

from selenium import webdriver
from selenium.webdriver.common.by import By


driver = webdriver.Chrome()

driver.get("https://selenium.dev/documentation")
assert "Selenium" in driver.title

elem = driver.find_element(By.ID, "m-documentationwebdriver")
elem.click()
assert "WebDriver" in driver.title

driver.quit()

Example 2:

Selenium WebDriver is often used as a basis for testing web applications. Here is an example using Python’s standard unittest framework:

import unittest
from selenium import webdriver


class SeleniumTestCase(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()
        self.addCleanup(self.driver.quit)

    def test_page_title(self):
        self.driver.get("https://selenium.dev")
        self.assertIn("Selenium", self.driver.title)

Example 3:

Here is an example using pytest framework:

import pytest
from selenium import webdriver


@pytest.fixture
def driver():
    driver = webdriver.Chrome()
    yield driver
    driver.quit()


def test_page_title(driver):
    driver.get("https://selenium.dev")
    assert "Selenium" in driver.title

Selenium Grid (optional)

For local Selenium scripts, the Java server is not needed.

To use Selenium remotely, you need to also run a Selenium Grid. For information on running Selenium Grid: https://selenium.dev/documentation/grid/getting_started/

To use Remote WebDriver see: https://selenium.dev/documentation/webdriver/drivers/remote_webdriver/?tab=python

Use The Source Luke!

View source code online:

Official:

https://github.com/SeleniumHQ/selenium/tree/trunk/py

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

selenium-4.48.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

selenium-4.48.0-py3-none-any.whl (9.6 MB view details)

Uploaded Python 3

File details

Details for the file selenium-4.48.0.tar.gz.

File metadata

  • Download URL: selenium-4.48.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for selenium-4.48.0.tar.gz
Algorithm Hash digest
SHA256 045c1ec054c94e3be6c10febc509aa513b4c05e9146d1a9cf3de5375ec6ca2a1
MD5 0330cd13b3ebc9875d0ad1ad36d6aeb4
BLAKE2b-256 7f8cdb97bdc1a8b41e7b6bf9d3099722ed8e7ac61328af8637f20004015c642b

See more details on using hashes here.

Provenance

The following attestation bundles were made for selenium-4.48.0.tar.gz:

Publisher: release.yml on SeleniumHQ/selenium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file selenium-4.48.0-py3-none-any.whl.

File metadata

  • Download URL: selenium-4.48.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for selenium-4.48.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2a1d77019db92513e59aa2376710fe3d42b65a4d493dccd0c799c1a0d574d93
MD5 ead9e6fefc677bb09eac6675b56cd8ab
BLAKE2b-256 d3ee5d1b0e9cb43965902f0a9f7add527134db71cabf2f26766ae2fdb7774b9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for selenium-4.48.0-py3-none-any.whl:

Publisher: release.yml on SeleniumHQ/selenium

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

4.48.0 This release

2 files

4.47.0

2 files

4.46.0

2 files

4.45.0

2 files

4.44.0

2 files

4.43.0

2 files

4.42.0

2 files

4.41.0

2 files

4.40.0

2 files

4.39.0

2 files

4.38.0

2 files

4.37.0

2 files

4.36.0

2 files

4.35.0

2 files

4.34.2

2 files

4.34.1

1 file

4.34.0

2 files

4.33.0

2 files

4.32.0

2 files

4.31.0

2 files

4.30.0

2 files

4.29.0

2 files

4.28.1

2 files

4.28.0

2 files

4.27.1

2 files

4.27.0

2 files

4.26.1

2 files

4.26.0

2 files

4.25.0

2 files

4.24.0

2 files

4.23.1

2 files

4.23.0

2 files

4.22.0

2 files

4.21.0

2 files

4.20.0

2 files

4.19.0

2 files

4.18.1

2 files

4.18.0

2 files

4.17.2

2 files

4.17.1

2 files

4.17.0

2 files

4.16.0

2 files

4.15.2

2 files

4.15.1

2 files

4.15.0

2 files

4.14.0

2 files

4.13.0

2 files

4.12.0

2 files

4.11.2

2 files

4.11.1

2 files

4.11.0

2 files

4.10.0

2 files

4.9.1

2 files

4.9.0

2 files

4.8.3

2 files

4.8.2

2 files

4.8.1

2 files

4.8.0

2 files

4.7.2

2 files

4.7.1

1 file

4.7.0

1 file

4.6.1

1 file

4.6.0

1 file

4.5.0

1 file

4.4.3

1 file

4.4.2

1 file

4.4.1

1 file

4.4.0

1 file

4.3.0

1 file

4.2.0

1 file

4.1.5

1 file

4.1.4

1 file

4.1.3

1 file

4.1.2

1 file

4.1.1

1 file

4.1.0

1 file

4.0.0

1 file

4.0.0a6

2 files

3.141.0

2 files

3.14.1

2 files

3.14.0

2 files

3.13.0

2 files

3.12.0

2 files

3.11.0

2 files

3.10.0

2 files

3.9.0

2 files

3.8.1

2 files

3.8.0

2 files

3.7.0

2 files

3.6.0

2 files

3.5.0

2 files

3.4.3

2 files

3.4.2

2 files

3.4.1

2 files

3.4.0

2 files

3.3.3

2 files

3.3.2

2 files

3.3.1

2 files

3.3.0

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.53.6

2 files

2.53.5

2 files

2.53.4

2 files

2.53.3

2 files

2.53.2

2 files

2.53.1

2 files

2.53.0

2 files

2.52.0

1 file

2.51.1

1 file

2.51.0

1 file

2.50.1

2 files

2.50.0

2 files

2.49.2

2 files

2.49.1

2 files

2.49.0

2 files

2.48.0

2 files

2.47.3

2 files

2.47.2

1 file

2.47.1

2 files

2.47.0

1 file

2.46.1

1 file

2.46.0

1 file

2.45.0

1 file

2.44.0

1 file

2.43.0

1 file

2.42.1

1 file

2.42.0

1 file

2.41.0

1 file

2.40.0

1 file

2.39.0

1 file

2.38.4

1 file

2.38.3

1 file

2.38.2

1 file

2.38.1

1 file

2.38.0

1 file

2.37.2

1 file

2.37.1

1 file

2.37.0

1 file

2.36.0

1 file

2.35.0

1 file

2.34.0

1 file

2.33.0

1 file

2.32.0

1 file

2.31.0

1 file

2.30.0

1 file

2.29.0

1 file

2.28.0

1 file

2.27.0

1 file

2.26.0

1 file

2.25.0

1 file

2.24.0

1 file

2.23.0

1 file

2.22.1

1 file

2.22.0

1 file

2.21.3

1 file

2.21.2

1 file

2.21.1

1 file

2.21.0

1 file

2.20.0

1 file

2.19.1

1 file

2.19.0

1 file

2.18.1

1 file

2.17.0

2 files

2.16.0

1 file

2.15.0

1 file

2.14.0

1 file

2.13.1

1 file

2.13.0

1 file

2.12.1

1 file

2.12.0

1 file

2.11.1

1 file

2.11.0

1 file

2.10.0

1 file

2.9.0

1 file

2.8.1

1 file

2.8.0

1 file

2.7.0

1 file

2.6.0

1 file

2.5.0

1 file

2.4.0

1 file

2.3.0

1 file

2.2.0

1 file

2.1.0

1 file

2.0.1

1 file

2.0.0

1 file

1.0.3

1 file

1.0.1

3 files

0.9.2

3 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page