Selenious
Enhances Selenium with timeouts and recover capabilities.
- Free software: BSD license
- Documentation: https://selenious.readthedocs.io.
Introduction
Selenious enhances Selenium WebDriver find_element* functions to have a
timeout, poll_frequency, and recover. The find_elements*
functions are additionally enhanced with debounce and min settings.
Selenium already has an implicitly_wait and a WebDriverWait function.
Neither of these have the versatility and natural feel that Selenious gives
the code. To add a 5 second timeout to a single call, Selenious would
be::
driver.find_element_by_id('popup', timeout=5)
While with implicitly_wait the code would be::
driver.implicitly_wait(5)
driver.find_element_by_id('popup')
driver.implicitly_wait(hopefully_you_know_what_the_setting_was_before)
And WebDriverWait would be::
WebDriverWait(driver, 5).until(
EC.presence_of_element_located((By.ID, "popup"))
)
Features
Enhancement to the find_element function
-
timeout- The maximum time in seconds to wait for a succesful find. -
poll_frequency- How often to poll the driver for the element -
debounce- Forfind_elements*wait for this time period for the count to not change. -
min- Forfind_elements*the minimum count to find. -
recover- If the item or min items are not found, call this periodically and try again.
Drop-in replacement for selenium webdriver
Instead of from selenium.webdriver import Chrome a convenience
of from selenious.webdriver import Chrome can be used that
imports the SeleniousMixin for you.
Settings can be set in the function or globally
Locally, webdriver.find_element_by_id('id', timeout=5), or globaly,
webdriver.timeout = 5.
Support of recover() for click()
If a click() command raises an exception, if set, the recover() function
will be called once and the click attempted again. This allows for recovering
from such events as a modal popup being shown or the button has scrolled out
of view.
No deprecation of the find_element[s]by* methods
The developers of selenium have made the decision to deprecate redundant
functions such as find_element_by_id(id_) with the common function
and a By parameter. find_element(By.ID, id_). Selenious will continue
to support these convenience functions and not print a warning.
Credits
This package was created with Cookiecutter_ and the audreyr/cookiecutter-pypackage_ project template.
History
0.2.1 (2021-11-30)
- Documentation enhancements
0.2.0 (2021-11-28)
-
Add element.find_element[s]*() function support.
-
Add element.click() recover support.
0.1.0 (2020-10-11)
- First release on PyPI.
Metadata
Release files for selenious 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| selenious-0.2.1.tar.gz | 15.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| selenious-0.2.1-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 36.1 kB
Release files / selenious-0.2.1.tar.gz
| Download URL | selenious-0.2.1.tar.gz |
|---|---|
| Size | 15.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1cf4567f2d70044cd8765d180e03798081bcf778cdcd517c3d64e90718bb2cf5
|
|
BLAKE2b-256 checksum How to use checksums |
a4bc41957583db8296049df799dc820b57eb8566cf50b9dde5bf8497402960fa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
|
Release files / selenious-0.2.1-py2.py3-none-any.whl
| Download URL | selenious-0.2.1-py2.py3-none-any.whl |
|---|---|
| Size | 20.3 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
70235a57822ff43a358bfc79cb13b63439e811892b462c955e1deaa9db3c6613
|
|
BLAKE2b-256 checksum How to use checksums |
8c9e5bc053cf56df342acc1f05a5be10a3f0b71e346b7353c9f4410b2a634bec
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0
|