Package providing common functionality for UI automation test packs
Project description
UiTestCore
This package helps with writing UI tests by providing a wrapper around Selenium and other useful functions. UiTestCore was designed with Page Object Model in mind, and makes it easy to create an acceptance test pack without the need to write any Selenium code.
Example
The below example shows how you can create a class representing a web page, in this case a login page.
from uitestcore.page import BasePage
from uitestcore.page_element import PageElement
from selenium.webdriver.common.by import By
class MyLoginPage(BasePage):
# Define elements to interact with
header_logo = PageElement(By.ID, "company-logo")
username_field = PageElement(By.ID, "input-user")
password_field = PageElement(By.CLASS_NAME, "field-password")
login_button = PageElement(By.XPATH, "//button[text()='Login']")
def open_login_page(self):
self.interact.open_url("https://mysite.com/login")
self.wait.for_page_to_load()
def logo_visible(self):
return self.interrogate.is_element_visible(self.header_logo)
def enter_username(self, username):
self.interact.enter_text(self.username_field, username)
def enter_password(self, password):
self.interact.enter_text(self.password_field, password)
def click_login_button(self):
self.interact.click_element(self.login_button)
The "BasePage" class is provided so that any page classes in the test pack can inherit from it, giving access to many useful functions which are separated into "find", "interrogate", "interact" and "wait". The "PageElement" class is used to define any elements which your tests need to interact with, so they can be reused without needing to remember whether you're looking for a class, ID etc (all Selenium selector types are supported).
The above page class could then be used in the test steps to perform any required actions and assertions.
Unit tests and linting
The unit tests for this package can be found in the tests folder and are written using PyTest. Pylint is being used to ensure code quality.
Versioning
We use SemVer for versioning. For the versions available, see the tags on the repository.
License
This project is licensed under the MIT License - see the LICENSE.md file for details
Dependencies
The package dependencies along with links to their licenses are as follows:
certifi - http://mozilla.org/MPL/2.0/
chardet - https://github.com/chardet/chardet/blob/master/LICENSE
idna - https://github.com/kjd/idna/blob/master/LICENSE.rst
pyhamcrest - https://github.com/hamcrest/PyHamcrest/blob/master/LICENSE.txt
python-dateutil - https://github.com/pganssle/dateutil/blob/master/LICENSE
requests - https://github.com/psf/requests/blob/master/LICENSE
selenium - https://github.com/SeleniumHQ/selenium/blob/master/LICENSE
six - https://github.com/benjaminp/six/blob/master/LICENSE
urllib3 - https://github.com/urllib3/urllib3/blob/master/LICENSE.txt
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
Built Distribution
File details
Details for the file uitestcore-3.1.0.tar.gz
.
File metadata
- Download URL: uitestcore-3.1.0.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cad91baf3731d9ee825fdfb6fa1852a7ff5cfa02b6a59608f534056679a63a6e |
|
MD5 | e7825db028505ead96af130a63efe347 |
|
BLAKE2b-256 | 17d430676fd21011c63cce23c40b4c5d6e9c594e407371aca1274eb15f8a25c9 |
Provenance
File details
Details for the file uitestcore-3.1.0-py3-none-any.whl
.
File metadata
- Download URL: uitestcore-3.1.0-py3-none-any.whl
- Upload date:
- Size: 20.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4790c1215612b10d858ba6f1c9716a2161d86bbf2269823add4b013ff92d98c1 |
|
MD5 | 6145207293d7506ba08344786802b7e5 |
|
BLAKE2b-256 | 4c0f67d85419e0b019e875fad37cf74dd2f479d7f43b893df0b30ece3cfa1aa8 |