Page object model made easy.
Project description
Page object model made easy.
Free software: BSD 2-Clause License
Installation
pip install selenium-elements
Documentation
To use the project:
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from src.page import Region, Page
from .elements import PageElement, PageElements
from .validators import title_matches, url_contains
from .elements import RegionElements, RegionElement
class Show(Page):
path = '/show/{show_slug}/'
page_title_pattern = '^[A-az-Z] | PBS$'
class PromoShowRegion(Region):
title_element = PageElement(By.CLASS_NAME, 'carousel--show-strip__image-link')
def open(self):
self.title_element.click()
return Show(driver=self.driver, base_url=self.base_url, visit=False)
def title(self):
return self.title_element.get_attribute('data-gtm-label')
class Home(Page):
path = '/'
load_timeout = 30
validators = [
title_matches('^PBS: Public Broadcasting Service$'),
url_contains('pbs.org/'),
]
promo_show_elements = PageElements(By.CLASS_NAME, 'show-promo')
promo_shows = RegionElements(
region_class=PromoShowRegion, root_element=promo_show_elements
)
@pytest.fixture
def driver():
driver = webdriver.Chrome()
yield driver
driver.quit()
def test_foo(driver):
home = Home(driver=driver, base_url='https://www.pbs.org')
breakpoint()
for show in home.promo_shows:
print(show.title())
# show = home.promo_shows[0].open()
# show_page = Show(driver, base_url='https://www.pbs.org', show_slug='frontline')
breakpoint()
assert True
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
selenium-elements-0.0.1.tar.gz
(11.5 kB
view hashes)
Built Distribution
Close
Hashes for selenium_elements-0.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6702dcb9edc7ddb05b6d41b2f918b5070080aded186b1199002cd54583ce3f96 |
|
MD5 | 9d6b9d02001a23eb0cb5adc916f21f9c |
|
BLAKE2b-256 | 70492255a2c75e36cb22e0154a464ee60b133dac502ef0000b21f93064032279 |