How prog420/automationexercise works
This repository is a pytest/Selenium automation project for AutomationExercise.com, with UI coverage for authentication, registration, contact, and product browsing, plus user-data helpers and an HTTP API client. The documented entry point is a pytest run. Page objects drive the site through Selenium; the API client separately creates and deletes accounts over HTTP. The sampled files establish those internal responsibilities, but not the test-to-fixture wiring, so uncertain links are omitted.
Main entry points: base_page.py Selenium page layer · locators.py Element locators · header.py Shared navigation · login_page.py Login and signup
Components 20
Automation suites
- UI test suites
tests/tests_ui
Selenium page objects
- Login and signup
app/ui/pages/login_page.py - Account registration
app/ui/pages/signup_page.py - Account created
app/ui/pages/account_created_page.py - Account deleted
app/ui/pages/account_deleted_page.py - Contact form
app/ui/pages/contact_us_page.py - Product listing
app/ui/pages/products_page.py - Product detail
app/ui/pages/product_page.py - Home page
app/ui/pages/home_page.py - Shared navigation
app/ui/pages/header.py - Subscription footer
app/ui/pages/footer.py - Selenium page layer
app/ui/pages/base_page.py - Element locators
app/ui/locators.py
User data and API
- User model
app/models/user.py - User builder
utils/user_builder.py - User generator
utils/user_generator.py - User importer
utils/user_importer.py - Account API client
app/api/api_client.py
Other components
- Test operator
- AutomationExercise
Connections 25
- Test operator → UI test suites: runs with pytest
README.md - Login and signup → User model: accepts user
app/ui/pages/login_page.py - Account registration → User model: accepts user
app/ui/pages/signup_page.py - Account API client → User model: serializes user
app/api/api_client.py - User builder → User model: builds
utils/user_builder.py - Account API client → AutomationExercise: sends HTTP requests
app/api/api_client.py - Selenium page layer → AutomationExercise: opens pages
app/ui/pages/base_page.py - Login and signup → Selenium page layer: inherits
app/ui/pages/login_page.py - Account registration → Selenium page layer: inherits
app/ui/pages/signup_page.py - Contact form → Selenium page layer: inherits
app/ui/pages/contact_us_page.py - Product listing → Selenium page layer: inherits
app/ui/pages/products_page.py - Product detail → Selenium page layer: uses
app/ui/pages/product_page.py - Shared navigation → Selenium page layer: inherits
app/ui/pages/header.py - Login and signup → Shared navigation: inherits
app/ui/pages/login_page.py - Account registration → Shared navigation: inherits
app/ui/pages/signup_page.py - Contact form → Shared navigation: inherits
app/ui/pages/contact_us_page.py - Product listing → Shared navigation: inherits
app/ui/pages/products_page.py - Home page → Element locators: uses selectors
app/ui/pages/home_page.py - Selenium page layer → Element locators: uses selectors
app/ui/pages/base_page.py - Shared navigation → Element locators: uses selectors
app/ui/pages/header.py - Contact form → Element locators: uses selectors
app/ui/pages/contact_us_page.py - Product listing → Element locators: uses selectors
app/ui/pages/products_page.py - Product detail → Element locators: uses selectors
app/ui/pages/product_page.py - Login and signup → Element locators: uses selectors
app/ui/pages/login_page.py - Account registration → Element locators: uses selectors
app/ui/pages/signup_page.py