Skip to main content

Package with utilities and functional extensions for Selenium webdriver Python language bindings

Project description

SeleniumXP utilities for Python

Package with utilities and functional extensions for Selenium webdriver Python language bindings

Features

The package consist of various helpers and extensions to the Selenium webdriver:

  • module for session handling especially a custom factory function to initialize a webdriver object
  • module with additional methods for the webdriver class
  • module with convenience functions for locators
  • module with additional methods for the webelement class
  • an extended event-firing webdriver and an extended listener abstract base class
  • a sample event listener implementation based on the extended abstract base class

Different from other packages extending the Selenium webdriver class does not work with wrapping the original webdriver but providing a mixin class or alternatively directly setting additional methods via 'setattr' in the original webdriver class. This is done and controlled via a pretty versatile custom factory function initializing the webdriver.

The webelement extension are done via setattr only. Implementing a mixin class would require to modify webdriver methods to return the new class with the mixin. So benefit of the settattr approach is that extending the webelement class is independend from changes to the webdriver class.

Note: as I am coming from camel case notation I was struggling a little bit with the Python naming conventions. However, for publishing I tried to increase compliance with Python naming conventions and added snake case method stubs (at least for most important subroutines) as a compromise.

Development

To set up hatch and pre-commit for the first time:

  1. install hatch globally, e.g. with pipx, i.e. pipx install hatch,
  2. make sure pre-commit is installed globally, e.g. with pipx install pre-commit.

A special feature that makes hatch very different from other familiar tools is that you almost never activate, or enter, an environment. Instead, you use hatch run env_name:command and the default environment is assumed for a command if there is no colon found. Thus you must always define your environment in a declarative way and hatch makes sure that the environment reflects your declaration by updating it whenever you issue a hatch run .... This helps with reproducability and avoids forgetting to specify dependencies since the hatch workflow is to specify everything directly in pyproject.toml. Only in rare cases, you will use hatch shell to enter the default environment, which is similar to what you may know from other tools.

To get you started, use hatch run test:cov or hatch run test:no-cov to run the unitest with or without coverage reports, respectively. Use hatch run lint:all to run all kinds of typing and linting checks. Try to automatically fix linting problems with hatch run lint:fix and use hatch run docs:serve to build and serve your documentation. You can also easily define your own environments and commands. Check out the environment setup of hatch in pyproject.toml for more commands as well as the package, build and tool configuration.

To support versioning and changelog generation please refer to the toolchain selected during package generation (see also pyproject.toml). If not deselected, the toolchain includes a pre-commit hook for linting commit messages to ensure commit messages are compliant with the conventional commit format and support an automated changelog generation.

Credits

This package was created with The Hatchlor Enhanced project template. This template is based on The Hatchlor but was substantially improved.

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

utils_seleniumxp-1.0.0.tar.gz (35.6 kB view details)

Uploaded Source

Built Distribution

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

utils_seleniumxp-1.0.0-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

Details for the file utils_seleniumxp-1.0.0.tar.gz.

File metadata

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

File hashes

Hashes for utils_seleniumxp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 94472cf156d9c400f1d89527cb6c1b8edc7214b63c2800b2e23951288edb6e91
MD5 2ade6863d9c5d3132d2957f5bb680573
BLAKE2b-256 c001fbae2d348b34259a5761b4c109b50f414d7daae8eff86bdc18e684969e0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for utils_seleniumxp-1.0.0.tar.gz:

Publisher: build.yml on dornech/utils-seleniumxp

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

File details

Details for the file utils_seleniumxp-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for utils_seleniumxp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 581473cf0daac8aa5fb89f821388c7a27fd1096d5de6f4bdf07cfda82e426a48
MD5 6564fc8e240eecace0cfe3ad58dfadaa
BLAKE2b-256 a28311a49378190b114f8ca2e0f2d7feb1304e26833d0476d0d28748583bf4d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for utils_seleniumxp-1.0.0-py3-none-any.whl:

Publisher: build.yml on dornech/utils-seleniumxp

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