Skip to main content

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:

behave - https://github.com/behave/behave/blob/master/LICENSE
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
parse - https://github.com/r1chardj0n3s/parse/blob/master/LICENSE
parse-type - https://github.com/jenisys/parse_type/blob/master/LICENSE
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


Download files

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

Source Distribution

uitestcore-2.5.4.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

uitestcore-2.5.4-py3-none-any.whl (20.9 kB view details)

Uploaded Python 3

File details

Details for the file uitestcore-2.5.4.tar.gz.

File metadata

  • Download URL: uitestcore-2.5.4.tar.gz
  • Upload date:
  • Size: 16.1 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

Hashes for uitestcore-2.5.4.tar.gz
Algorithm Hash digest
SHA256 049dfa3cb16927a944f9e1f564844c3c9324cfcb07863ca79c730eb062d147ab
MD5 fb038bd21c74968bc3656c7891ea716c
BLAKE2b-256 45ea7f8ed256074da84c84f5fb4903257fbd5e10bd044483378a8fa54c1b57c0

See more details on using hashes here.

Provenance

File details

Details for the file uitestcore-2.5.4-py3-none-any.whl.

File metadata

  • Download URL: uitestcore-2.5.4-py3-none-any.whl
  • Upload date:
  • Size: 20.9 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

Hashes for uitestcore-2.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 d05e7cd33453fdfa31ffe5aace098acdecacd895f093207ceff14bd7746fdb74
MD5 ab3440c4222a2e12c6b7d66f64dd8fa6
BLAKE2b-256 57e0f0af5087a5ee255bcd7569d10f1a604db42f6f88be6b5631523d9380e0be

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page