Selenium wrapper for testing Web UI
Project description
Simple selenium wrapper from implemented UI tests
Watch documentation
Quick Start
Install
Promium
pip install promium
Selenium
pip install selenium
Driver
# get actual chrome driver version
CHROME_DRIVER_VERSION=$(wget http://chromedriver.storage.googleapis.com/LATEST_RELEASE -q -O -)
# download chrome driver
wget --no-verbose -O /tmp/chromedriver_linux64.zip https://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip
# unpack
unzip /tmp/chromedriver_linux64.zip -d /opt/selenium
# add link from chrome driver
ln -fs /opt/selenium/chromedriver /usr/bin/chromedriver
Examples
Page Objects
from selenium.webdriver.common.by import By
from promium import Page, Block, Element, InputField, Link
class ResultBlock(Block):
title = Link(By.CSS_SELECTOR, 'h3')
link = Element(By.CSS_SELECTOR, '.f')
description = Element(By.CSS_SELECTOR, '.st')
tags = Element.as_list(By.CSS_SELECTOR, '.osl .fl')
class GoogleResultPage(Page):
results_blocks = ResultBlock.as_list(By.CSS_SELECTOR, '#rso .srg div.g')
class GoogleMainPage(Page):
url = 'https://google.com'
logo = Element(By.CSS_SELECTOR, '#hplogo')
search_input = InputField(By.CSS_SELECTOR, '[name="q"]')
def search(self, text):
self.search_input.send_keys(text)
self.search_input.submit()
return GoogleResultPage(self.driver)
Simple test from google page
from promium.test_case import WebDriverTestCase
from tests.pages.google_page import GoogleMainPage
class TestMainGooglePage(WebDriverTestCase):
def test_search(self):
main_page = GoogleMainPage(self.driver)
main_page.open()
self.soft_assert_element_is_displayed(main_page.logo)
result_page = main_page.search('Selenium')
result_block = result_page.results_blocks.first_item
self.soft_assert_in('Selenium', result_block.title.text)
Run test
# all tests
pytest tests/
# all tests in suite
pytest tests/test_google.py
# only one test
pytest tests/test_google.py -k test_search
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
Promium-2.1.2.tar.gz
(38.9 kB
view details)
File details
Details for the file Promium-2.1.2.tar.gz
.
File metadata
- Download URL: Promium-2.1.2.tar.gz
- Upload date:
- Size: 38.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad3ee01daded576a33bbd72e10b3e261293650faa2b086ef2e34f293e0214587 |
|
MD5 | c6f96490961dd712587695c8d7dc7bdb |
|
BLAKE2b-256 | 38185aa16fac5ff996047b7c63dee3de1045fe374319f018275eef2fdff1d3b1 |