Skip to main content

Setup Selenium for automation testing

Project description

setup-selenium-testing

I get tired of having to rewrite the setup logic for selenium drivers in every project. Time to consolidate.

License PyPI Supported Versions Checked with mypy Code style: black Imports: isort Ruff

Issues

Build Status Build Status Build Status Build Status

Instantiating SetupSelenium

This will automatically handle any downloading of drivers or browsers via SeleniumManager

from setup_selenium import SetupSelenium

s = SetupSelenium(headless=True)
assert s.driver.service.is_connectable()

Advanced usage:

from setup_selenium import Browser, SetupSelenium

s = SetupSelenium(Browser.FIREFOX, headless=True, driver_version="118.0.5993.70")
s = SetupSelenium(Browser.CHROME, headless=True, driver_version="118.0.5993.70",
                  driver_path="/path/to/webdriver"
                  )

[!NOTE] Version and path arguments follow the logic of SeleniumManager. Caution is advised in cases where version and path do not match. See their documentation.

Install Driver only

from setup_selenium import Browser, SetupSelenium

driver_path, browser_path = SetupSelenium.install_driver(Browser.CHROME, driver_version="118.0.5993.70")

Create driver only

from setup_selenium import Browser, SetupSelenium

driver = SetupSelenium.create_driver(browser=Browser.CHROME, headless=True)

Advanced usage:

from setup_selenium import Browser, SetupSelenium

driver = SetupSelenium.create_driver(
    browser=Browser.CHROME,
    headless=True,
    enable_log_performance=False,
    enable_log_console=False,
    enable_log_driver=False,
    log_dir="./logs",
    binary="/usr/bin/chromium",
    driver_path="/usr/bin/chromedriver",
)

[!NOTE] It is possible to enable the performance and console logging but only for chrome based browsers. This only enables the browser ability. It is up to the tester to handle logging the messages.

Custom logger

import logging
from setup_selenium import Browser, SetupSelenium, set_logger

set_logger(logging.getLogger("your_custom_logger"))
driver = SetupSelenium.create_driver(browser=Browser.CHROME, headless=True)

Automatic driver and browser installation

This package not only handles setup of the webdriver but also will automatically install the webdriver and/or browser depending on your configuration.

If you do not provide a driver_path argument to create_driver the package will utilize selenium-manager to install the webdriver for the browser type selected.

If the selenium-manager cannot find the install path for the browser type (which is usually in the native install path) it will download a version of the browser and use that.

Passing a valid binary_path will not trigger any download of the browser. Passing a valid driver_path will not trigger any download of the webdriver.

CHANGELOG

version 1.0.6

  • fixing annotations for selenium 4.41

version 1.0.5

  • updated throttling functions

version 1.0.2

  • removed python 3.8 support

version 1.0.1

  • removed --remote-debugging-pipe from default chrome options (causes older chrome to crash)

version 1.0.0

  • official release

Project details


Download files

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

Source Distribution

setup_selenium_testing-1.0.6.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

setup_selenium_testing-1.0.6-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file setup_selenium_testing-1.0.6.tar.gz.

File metadata

  • Download URL: setup_selenium_testing-1.0.6.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for setup_selenium_testing-1.0.6.tar.gz
Algorithm Hash digest
SHA256 8a018ca84e051cd6f226033ec77fc3b8e5ba0e9e3b3ab10fb05071de555e8224
MD5 485bca96b010620bae6a3f21264aa1a8
BLAKE2b-256 6cb75bf0ae1ce7b9c00e67bdf3646f912a6d5394035e5b27ceeeb6cf879f1651

See more details on using hashes here.

Provenance

The following attestation bundles were made for setup_selenium_testing-1.0.6.tar.gz:

Publisher: publish.yml on bandophahita/setup_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 setup_selenium_testing-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for setup_selenium_testing-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a53eee615ecd9de1bfa04765cbd5390cee2c93cec581c013f112c042cf6e5bee
MD5 5283177462f00a3ae5218d3447d2f215
BLAKE2b-256 7cc322a67e4c3c1f64fdeecd0bfd888158e2d3aaf4bb61abacbcf0d2683a5219

See more details on using hashes here.

Provenance

The following attestation bundles were made for setup_selenium_testing-1.0.6-py3-none-any.whl:

Publisher: publish.yml on bandophahita/setup_selenium

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

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