Skip to main content

Official Python bindings for Selenium WebDriver

Project description

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://www.selenium.dev/support/#ChatRoom

Docs:

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

API Reference:

https://www.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 <https://pip.pypa.io/>.

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 a simple example using Python’s standard unittest library:

import unittest
from selenium import webdriver


class GoogleTestCase(unittest.TestCase):

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

    def test_page_title(self):
        self.driver.get('https://www.google.com')
        self.assertIn('Google', self.driver.title)

if __name__ == '__main__':
    unittest.main(verbosity=2)

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://www.selenium.dev/documentation/grid/getting_started/

To use Remote WebDriver see: https://www.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

Contributing

  • Fork the selenium repo

  • Clone your fork locally

  • Create a branch for your work
    • git checkout -b my-cool-branch-name

  • Create a virtual environment and install tox
    • python -m venv venv && source venv/bin/activate && pip install tox

  • Make your changes

  • Run the linter/formatter
    • tox -e linting

  • If tox exits 0, commit and push. Otherwise, fix the newly introduced style violations

  • Submit a Pull Request

Project details


Release history Release notifications | RSS feed

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.42.0.tar.gz (956.3 kB view details)

Uploaded Source

Built Distribution

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

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: selenium-4.42.0.tar.gz
  • Upload date:
  • Size: 956.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for selenium-4.42.0.tar.gz
Algorithm Hash digest
SHA256 4c8ebd84ff96505db4277223648f12e2799e92e13169bc69633a6b24eb066c72
MD5 bd2318c34ac6207e30cd967ee028d798
BLAKE2b-256 3346fb93d37749ecf13853739c31c70bd95704310a7defbc57e7101dc4ab2513

See more details on using hashes here.

File details

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

File metadata

  • Download URL: selenium-4.42.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for selenium-4.42.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bb29eababf54fa479c95d5fa3fba73889db5d532f3a76addc5b526bbff14fca7
MD5 1ee88f6e5330434a6e6312d42bb67329
BLAKE2b-256 cf479f094f1cffdb54b01da75b45cc29673869458a504b30002797c0c47ac985

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page