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.1.0

  • allow driver options to be passed into SetupSelenium()
  • disabled HttpsFirstBalancedModeAutoEnable in chromium based drivers (by default)

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.1.0.tar.gz (11.1 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.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: setup_selenium_testing-1.1.0.tar.gz
  • Upload date:
  • Size: 11.1 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.1.0.tar.gz
Algorithm Hash digest
SHA256 917449f19262a49db57df71fd72cf37c995edd26572adfda1d0818002dae5f43
MD5 fc10df7cb2a7f38d1dc1fee19e1aa4e2
BLAKE2b-256 a2a6012444115eb8f4f6470499ba15abbe6658ce574e5e68d689266146ee5f5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for setup_selenium_testing-1.1.0.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.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for setup_selenium_testing-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 34f002c3efdcf3eb23d673fa10e8044d1650e0ef2fe4f9b3541d9fd574d3c0c6
MD5 6f366c9ba413ef02925ace6bbe7b1d07
BLAKE2b-256 df81e74bf786c68c0647796dd032c75390ba665ad1df0b8d583f5801cd61f3bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for setup_selenium_testing-1.1.0-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