Professional E2E test suite automating the Seznam.cz email workflow using Playwright and Python.
This test suite covers the critical business path (Happy Path) of sending an email via the Seznam.cz web client:
- Successfully log into a Seznam.cz email account (handling dynamic cookie/ad banners).
- Navigate directly to the mailbox and initialize a new email to a predefined contact.
- Dynamically generate and attach a local text document (
test_attachment.txt). - Send the email and explicitly wait for the UI notification verifying successful delivery.
- Safely log out of the account via the profile menu.
As an E2E UI automation suite, coverage is focused on Functional Business Flows:
- UI Coverage: Login Page, Mailbox Dashboard, Email Composer Modal, File Upload Dialog, Success Notification, Logout Flow.
- Browser Coverage: Configured for Chromium (Headless mode in CI/CD pipeline, headed mode for local development).
- Resilience Coverage: Handles strict-mode violations, dynamic element locators, and conditional UI states (e.g., cookie banners).
- BDD Framework: Human-readable tests using Gherkin (
pytest-bdd). - Page Object Model (POM): Clean separation of test logic and UI locators.
- CI/CD Integrated: Automated test execution on every push via GitHub Actions.
- Security: Credential management using environment variables.
├── .github/workflows/ # CI/CD pipeline definition
├── pages/ # Page Object Model classes
├── tests/
│ ├── step_definitions/ # Python code executing the BDD steps
│ ├── email_workflow.feature # Gherkin scenario
│ └── conftest.py # Playwright fixtures and setup
├── requirements.txt # Python dependencies
└── README.md
- Python 3.10+
- Node.js (for Playwright binaries)
- Clone the repository:
git clone https://github.com/MilJav11/qa-automation-annea.git
cd qa-automation-annea- Create a
.envfile in the root directory and add your credentials:
TEST_EMAIL=your_test_email@seznam.cz
TEST_PASSWORD=your_password
- Install dependencies:
pip install -r requirements.txt- Install Playwright browsers:
playwright install chromiumExecute the test suite using pytest:
pytest