From df6c1185a32186eeb3305f3a5766ce785f1f12f4 Mon Sep 17 00:00:00 2001 From: roost-io <108646238+roostAI@users.noreply.github.com> Date: Mon, 27 Apr 2026 07:05:47 +0000 Subject: [PATCH] UI test generated by RoostGPT Using AI Model gpt-4.1 --- .../internal/ui_test_report.json | 158 +++++++++++++ .../playwright_tests/.roost/metadata.json | 207 +++++++++++++++++ .../playwright_tests/README.md | 84 +++++++ .../playwright_tests/pom_tests/.env.template | 13 ++ .../playwright_tests/pom_tests/package.json | 24 ++ .../pom_tests/playwright.config.js | 217 +++++++++++++++++ .../pom_tests/pom/BasePage.js | 28 +++ .../pom_tests/pom/HomePage.js | 12 + .../pom_tests/pom/MortgageStartPage.js | 31 +++ .../pom_tests/pom/MortgageWorkflowPage.js | 12 + .../w01_mortgage_1_pom.noauth.spec.js | 39 ++++ .../scenarios/WF001_mortgage_1.json | 219 ++++++++++++++++++ .../scenarios/reports/WF001_mortgage_1.pdf | Bin 0 -> 121591 bytes .../scenarios/summaries/WF001_mortgage_1.md | 75 ++++++ 14 files changed, 1119 insertions(+) create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/internal/ui_test_report.json create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/.roost/metadata.json create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/README.md create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/.env.template create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/package.json create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/playwright.config.js create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/BasePage.js create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/HomePage.js create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageStartPage.js create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageWorkflowPage.js create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/w01_mortgage_1_pom.noauth.spec.js create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/WF001_mortgage_1.json create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/reports/WF001_mortgage_1.pdf create mode 100644 generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/summaries/WF001_mortgage_1.md diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/internal/ui_test_report.json b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/internal/ui_test_report.json new file mode 100644 index 0000000..887cf09 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/internal/ui_test_report.json @@ -0,0 +1,158 @@ +{ + "login_scenario": "Skipped", + "workflow_completed": false, + "workflow_result": "FAIL", + "workflow_error": "", + "login_agent_activity_summary": "Not available", + "user_scenario_agent_activity_summary": "Not available", + "generated_files": { + "feature_files": [], + "json_files": [] + }, + "scenarios": { + "w01_mortgage_1": { + "test_name": "w01_mortgage_1", + "description": "Scenario run is working", + "testFilePath": "", + "extracted_data": "www.mortgage.leumi.co.il/extracted_data/captured_ui_data.json" + } + }, + "token_usage": { + "total": { + "input": 1004188, + "output": 25096, + "total": 1029284, + "cost": 0.8991279999999998, + "cached_input": 873344 + }, + "sessions": { + "main_execution": { + "type": "root", + "input": 0, + "output": 0, + "total": 0, + "cost": 0.0, + "cached_input": 0, + "call_count": 0, + "start_time": 1777272984.4516163, + "end_time": 1777273545.479732, + "duration": 561.0281157493591 + }, + "worker_supervisor_WF001": { + "type": "worker_supervisor", + "input": 4282, + "output": 324, + "total": 4606, + "cost": 0.0077, + "cached_input": 2304, + "call_count": 3, + "start_time": 1777272984.6681669, + "end_time": 1777273080.1189423, + "duration": 95.45077538490295 + }, + "explore_worker_WF001_a1": { + "type": "auto_created", + "input": 45314, + "output": 1379, + "total": 46693, + "cost": 0.065372, + "cached_input": 24192, + "call_count": 4, + "start_time": 1777273007.227826, + "end_time": null, + "duration": null + }, + "explore_worker_WF001_a2": { + "type": "auto_created", + "input": 36658, + "output": 1197, + "total": 37855, + "cost": 0.051019999999999996, + "cached_input": 21248, + "call_count": 4, + "start_time": 1777273054.768088, + "end_time": null, + "duration": null + }, + "explore_synthesize_single_workflow": { + "type": "auto_created", + "input": 2532, + "output": 1877, + "total": 4409, + "cost": 0.02008, + "cached_input": 0, + "call_count": 1, + "start_time": 1777273093.3811412, + "end_time": null, + "duration": null + }, + "report_curation_WF001": { + "type": "auto_created", + "input": 5290, + "output": 203, + "total": 5493, + "cost": 0.012204000000000001, + "cached_input": 0, + "call_count": 1, + "start_time": 1777273097.996647, + "end_time": null, + "duration": null + }, + "post_explore_testgen": { + "type": "root", + "input": 0, + "output": 0, + "total": 0, + "cost": 0.0, + "cached_input": 0, + "call_count": 0, + "start_time": 1777273098.4219942, + "end_time": 1777273545.4790082, + "duration": 447.0570139884949 + }, + "pom_gen_w01_mortgage_1": { + "type": "test_generation", + "input": 46513, + "output": 1573, + "total": 48086, + "cost": 0.045514000000000006, + "cached_input": 40064, + "call_count": 7, + "start_time": 1777273098.4241147, + "end_time": null, + "duration": null + }, + "test_gen_pom_w01_mortgage_1": { + "type": "test_generation", + "input": 56074, + "output": 1439, + "total": 57513, + "cost": 0.050316, + "cached_input": 48896, + "call_count": 7, + "start_time": 1777273112.0834987, + "end_time": null, + "duration": null + }, + "code_repair_w01_mortgage_1_pom.noauth.spec.js": { + "type": "code_repair", + "input": 807525, + "output": 17104, + "total": 824629, + "cost": 0.6469219999999999, + "cached_input": 736640, + "call_count": 75, + "start_time": 1777273152.3123813, + "end_time": 1777273545.4450586, + "duration": 393.13267731666565 + } + }, + "provider": "azure_open_ai", + "model": "gpt-4.1", + "timestamp": "2026-04-27T07:05:45.480090", + "cache_statistics": { + "total_cached_tokens": 873344, + "cache_hit_rate_percent": 87.0 + } + } +} \ No newline at end of file diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/.roost/metadata.json b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/.roost/metadata.json new file mode 100644 index 0000000..efee251 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/.roost/metadata.json @@ -0,0 +1,207 @@ +{ + "metadata_version": "1.0", + "created_at": "2026-04-27T06:56:24.447919", + "last_updated": "2026-04-27T07:05:45.481947", + "output_dir": "RoostGPT/ui-test_leumi/be2bf4ce-8e7c-4d7f-a31b-ceb4abbe131f/source/UI-Testing-ATID/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests", + "site_url": "https://www.mortgage.leumi.co.il", + "pom_files": [ + { + "url": "", + "file_name": "HomePage.js", + "file_path": "pom_tests/pom/HomePage.js" + }, + { + "url": "", + "file_name": "MortgageStartPage.js", + "file_path": "pom_tests/pom/MortgageStartPage.js" + }, + { + "url": "", + "file_name": "MortgageWorkflowPage.js", + "file_path": "pom_tests/pom/MortgageWorkflowPage.js" + } + ], + "Login_File": { + "name": null, + "path": null, + "hash": null, + "agent_workflow_completed": false, + "agent_workflow_file_path": null, + "agent_interaction_file_path": null, + "agent_activity_summary": null, + "agent_activity_error": null, + "agent_activity_outcome": null, + "agent_recommendation": null, + "agent_completion_level": null, + "agent_steps_completed": null, + "execution_flow_file_path": null, + "systematic_selectors_file_path": null, + "scenario_name": null, + "scenario_file_path": null, + "test_generated": false, + "test_generation_error": null, + "test_file_path": null, + "test_executed_success": null, + "test_execution_error": null, + "pom_test_name": null, + "pom_test_file_path": null, + "pom_test_executed_success": null, + "pom_test_execution_error": null, + "pom_files": null + }, + "Workflows": [ + { + "workflow_id": "WF001", + "title": "Primary Business Workflow", + "goal": "Verify users can reliably initiate the mortgage workflow from the homepage", + "feature_area": "Mortgage application and information portal", + "priority": "high", + "starting_hint": "", + "discovery_source": "user_scenario", + "source_file": "/var/tmp/Roost/RoostGPT/ui-test_leumi/be2bf4ce-8e7c-4d7f-a31b-ceb4abbe131f/mortgage (1).txt", + "source_file_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "worker_completed": true, + "worker_result": "success", + "linked_scenario_name": "w01_mortgage_1", + "error": null, + "scenario_name": "w01_mortgage_1", + "scenario_file_path": "generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/WF001_mortgage_1.json", + "scenario_summary_file_path": "generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/summaries/WF001_mortgage_1.md", + "report_pdf_file_path": "generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/reports/WF001_mortgage_1.pdf", + "feature_file_path": null, + "feature_file_name": null, + "agent_workflow_file_path": "/var/tmp/Roost/RoostGPT/ui-test_leumi/be2bf4ce-8e7c-4d7f-a31b-ceb4abbe131f/temp_info/www.mortgage.leumi.co.il/extracted_data/execution_flow_WF001_mortgage_1.json", + "agent_workflow_completed": true, + "scenario_analysis_result_file_path": null, + "agent_activity_summary": [ + "Agent initiated the mortgage workflow by navigating to https://www.mortgage.leumi.co.il. The agent successfully identified and interacted with the 'בואו נתחיל' (Let's Start) button twice, ensuring stable selector capture and workflow initiation. After each click, the agent was redirected to https://mortgage.leumi.co.il/minisite/mortgage. The agent performed a fresh navigation to the starting page to validate content loading and repeated the workflow initiation. The scenario concluded with the agent documenting the completed steps and reporting a hard blocker as per QA instructions." + ], + "agent_activity_error": [ + "During execution, the agent encountered a workflow loop: after clicking 'בואו נתחיל', the agent was redirected to the mortgage minisite but returned to the starting page for a fresh attempt. This detour did not prevent progress, as the agent successfully repeated the workflow initiation. No unrecoverable errors occurred; all actions were completed as intended." + ], + "agent_activity_outcome": [ + "The agent achieved the scenario goal by successfully initiating the mortgage workflow and interacting with the required elements. All critical steps were completed, and the workflow was properly documented." + ], + "agent_recommendation": "Review the workflow for potential loop or redirection issues that may impact user experience. Ensure that subsequent steps beyond the initial workflow initiation are accessible and stable for end-to-end testing.", + "agent_completion_level": "complete", + "agent_steps_completed": 5, + "visited_urls": [ + "https://www.mortgage.leumi.co.il/", + "https://mortgage.leumi.co.il/minisite/mortgage", + "https://www.mortgage.leumi.co.il" + ], + "execution_flow_file_path": null, + "test_generated": true, + "test_generation_error": null, + "test_name": "w01_mortgage_1", + "test_file_path": "generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/w01_mortgage_1_pom.noauth.spec.js", + "test_executed_success": true, + "test_execution_error": null, + "pom_test_name": "w01_mortgage_1_pom.noauth.spec.js", + "pom_test_file_path": "generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/w01_mortgage_1_pom.noauth.spec.js", + "pom_test_executed_success": true, + "pom_test_execution_error": null, + "pom_files": [ + { + "url": "", + "file_name": "HomePage.js", + "file_path": "pom_tests/pom/HomePage.js" + }, + { + "url": "", + "file_name": "MortgageStartPage.js", + "file_path": "pom_tests/pom/MortgageStartPage.js" + }, + { + "url": "", + "file_name": "MortgageWorkflowPage.js", + "file_path": "pom_tests/pom/MortgageWorkflowPage.js" + } + ], + "test_steps": [ + "Load homepage", + "Click the 'בואו נתחיל' (Let's Start) button to initiate mortgage workflow", + "Navigate to mortgage workflow page after button click", + "Return to homepage for fresh start", + "Repeat click on 'בואו נתחיל' (Let's Start) button to confirm selector stability", + "Navigate to mortgage workflow page after repeated button click" + ], + "video_recording_path": "/var/tmp/Roost/RoostGPT/ui-test_leumi/be2bf4ce-8e7c-4d7f-a31b-ceb4abbe131f/temp_info/www.mortgage.leumi.co.il/extracted_data/recordings/WF001_a2/069ef08d-1794-7653-8000-d387a8a87ae4.mp4" + } + ], + "explore_focus_areas": [], + "Imported_Test_Coverage": null, + "Token_Usage": { + "cumulative": { + "input_tokens": 1004188, + "output_tokens": 25096, + "cached_input_tokens": 0, + "total_tokens": 1029284, + "total_cost_usd": 0.899128 + }, + "runs": [ + { + "run_type": "generate", + "timestamp": "2026-04-27T07:05:45.480090", + "provider": "azure_open_ai", + "model": "gpt-4.1", + "input_tokens": 1004188, + "output_tokens": 25096, + "total_tokens": 1029284, + "cost_usd": 0.899128, + "sessions": { + "main_execution": { + "input": 0, + "output": 0, + "cost": 0.0 + }, + "worker_supervisor_WF001": { + "input": 4282, + "output": 324, + "cost": 0.0077 + }, + "explore_worker_WF001_a1": { + "input": 45314, + "output": 1379, + "cost": 0.065372 + }, + "explore_worker_WF001_a2": { + "input": 36658, + "output": 1197, + "cost": 0.05102 + }, + "explore_synthesize_single_workflow": { + "input": 2532, + "output": 1877, + "cost": 0.02008 + }, + "report_curation_WF001": { + "input": 5290, + "output": 203, + "cost": 0.012204 + }, + "post_explore_testgen": { + "input": 0, + "output": 0, + "cost": 0.0 + }, + "pom_gen_w01_mortgage_1": { + "input": 46513, + "output": 1573, + "cost": 0.045514 + }, + "test_gen_pom_w01_mortgage_1": { + "input": 56074, + "output": 1439, + "cost": 0.050316 + }, + "code_repair_w01_mortgage_1_pom.noauth.spec.js": { + "input": 807525, + "output": 17104, + "cost": 0.646922 + } + } + } + ] + } +} \ No newline at end of file diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/README.md b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/README.md new file mode 100644 index 0000000..697d7b2 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/README.md @@ -0,0 +1,84 @@ +# Playwright Test Suite + +## RoostGpt Generated playwright test + +This project contains Playwright-based automated tests located in the `playwright_tests` directory. + +## 📁 Directory Structure + +```bash + playwright_tests/ + ├── README.md + ├── pom_tests/ + │ ├── pom/ + │ │ └── *.js (pom pages) + │ ├── *_pom.spec.js (pom test files) + │ ├── package.json + │ └── playwright.config.js + ├── scenarios/ + │ ├── reports/ + │ │ └── *.pdf (summary with images) + │ ├── summaries/ + │ │ └── *.md (text only summary) + │ └── *.json (scenario files) + └── tests/ + ├── package.json + ├── playwright.config.js + ├── .env.template + ├── *.spec.js (test files) + └── test_summary.md +``` + +## 🧩 Prerequisites + +Make sure you have the following installed: + +- [Node.js](https://nodejs.org/) (version 18 or higher recommended) +- npm (comes with Node.js) + +## 📦 Setup + +1. Navigate to the Playwright tests directory: + +2. Install dependencies: + + ```bash + cd pom_tests or tests # depending on test type generated + cp .env.template .env + npm install + ``` + +3. Edit the `.env` file to set any required environment variables. +## 🚀 Running Tests + +To execute all Playwright tests: + +```bash +npx playwright test # You can provide --headed flag to run tests in headed mode +``` + +You can also run a specific test file: + +```bash +npx playwright test example.spec.js +``` + +> Replace `example.spec.js` with the actual test file you want to run. + +## 📂 Test Reports + +After the tests run, Playwright will generate a report. To view the report: + +```bash +npx playwright show-report +``` + +## ⚙️ Configuration + +Test configuration is defined in `playwright.config.js`. + +You can modify settings like test directory, timeout etc., in this file. + +## 📘 More Info + +For detailed Playwright documentation, visit: [https://playwright.dev](https://playwright.dev) diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/.env.template b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/.env.template new file mode 100644 index 0000000..e51ad55 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/.env.template @@ -0,0 +1,13 @@ +# Environment Configuration Template +# This file contains safe placeholder values for version control +# Actual credentials will be injected at runtime from your source env file + +# Application Configuration +BASE_HOST_URL='https://www.mortgage.leumi.co.il' +BASE_URL='https://www.mortgage.leumi.co.il' +CI='' +COOKIE_GRACE_PERIOD_MINUTES='' + +# Authentication & Credentials (POPULATED AT RUNTIME) +# These values are automatically loaded during test execution +# DO NOT enter real credentials here \ No newline at end of file diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/package.json b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/package.json new file mode 100644 index 0000000..d116d90 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/package.json @@ -0,0 +1,24 @@ + + { + "name": "pom-playwright-tests", + "version": "1.0.0", + "type": "module", + "description": "A robust suite of end-to-end tests using Playwright.", + "scripts": { + "test": "npx playwright test", + "test:headed": "npx playwright test --headed", + "report": "npx playwright show-report" + }, + "keywords": [ + "playwright", + "testing", + "e2e", + "automation" + ], + "author": "", + "license": "ISC", + "devDependencies": { + "@playwright/test": "1.55.0", + "dotenv": "^16.4.5" + } + } diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/playwright.config.js b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/playwright.config.js new file mode 100644 index 0000000..efb0541 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/playwright.config.js @@ -0,0 +1,217 @@ + +import { defineConfig } from "@playwright/test"; + +import * as fs from "fs"; +import * as path from "path"; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +/** + * @see https://playwright.dev/docs/test-configuration + * + * This configuration automatically reuses authentication session with smart cookie validation: + * 1. Checks if storage state exists AND cookies are still valid + * 2. If cookies expired → login test runs first to regenerate fresh cookies + * 3. If cookies valid → authenticated tests run directly (no login needed!) + * 4. Login tests always run with fresh browser + */ + +// Storage state file path +const storageStatePath = path.join(__dirname, '.auth', 'storage-state.json'); + +/** + * Validates if authentication cookies in storage state are still valid + * + * Smart validation that only checks auth-critical cookies (not analytics/tracking): + * - Configurable via AUTH_COOKIE_NAMES env var (comma-separated patterns) + * - Default patterns: session, auth, token, sid, JSESSIONID, etc. + * - Grace period: Triggers re-login N minutes before expiration (COOKIE_GRACE_PERIOD_MINUTES) + * - Ignores non-auth cookies to prevent unnecessary re-logins + * + * @returns {boolean} true if auth cookies are valid, false if expired/missing + */ +function isStorageStateValid() { + if (!fs.existsSync(storageStatePath)) { + return false; + } + + try { + const rawData = fs.readFileSync(storageStatePath, 'utf-8'); + if (!rawData.trim()) throw new Error('File is empty'); + + const storageState = JSON.parse(rawData); + + // Check if cookies array exists + if (!storageState.cookies || !Array.isArray(storageState.cookies)) { + return false; + } + + // Configure authentication cookie patterns + // Override via AUTH_COOKIE_NAMES environment variable (comma-separated) + const authCookiePatterns = (process.env.AUTH_COOKIE_NAMES || + 'session,auth,token,sid,oauth,JSESSIONID,connect.sid,access_token,refresh_token,jwt,bearer,_session').split(','); + + // Configure grace period (minutes before expiration to trigger re-login) + const gracePeriodMinutes = parseInt(process.env.COOKIE_GRACE_PERIOD_MINUTES || '1'); + const gracePeriodSeconds = gracePeriodMinutes * 60; + const now = Date.now() / 1000; // Convert to seconds + + // Filter to only auth-critical cookies + const authCookies = storageState.cookies.filter((cookie) => + authCookiePatterns.some((pattern) => + cookie.name.toLowerCase().includes(pattern.toLowerCase()) + ) + ); + + if (authCookies.length === 0) { + return false; + } + + // Check auth cookies for expiration (with grace period) + // @ts-ignore - Cookie type from storage state + const expiredAuthCookies = authCookies.filter((cookie) => + cookie.expires && + cookie.expires !== -1 && + cookie.expires < (now + gracePeriodSeconds) + ); + + if (expiredAuthCookies.length > 0) { + return false; + } + + return true; + } catch (error) { + // If the file is corrupted or empty, delete it so Playwright treats it as missing + try { + if (fs.existsSync(storageStatePath)) { + fs.unlinkSync(storageStatePath); + } + } catch (e) {} + return false; + } +} + +// Validate storage state (exists + cookies not expired) +const storageStateValid = isStorageStateValid(); + +export default defineConfig({ + testDir: ".", + fullyParallel: false, + forbidOnly: !!process.env.CI, + retries: process.env.CI ? 2 : 0, + workers: 1, + reporter: "html", + globalTimeout: 600000, + timeout: 120000, + + use: { + locale: "en-US", + trace: "on-first-retry", + screenshot: "only-on-failure", + viewport: null, // Use actual browser window size + launchOptions: { + args: [ + "--start-maximized", + "--disable-blink-features=AutomationControlled", + "--disable-dev-shm-usage", + "--no-sandbox", + ], + }, + // Do NOT set storageState here globally + // Each project will specify its own storage state needs + }, + + projects: [ + // ========================================== + // LOGIN TEST - Always runs with fresh browser + // ========================================== + { + name: 'login-test', + + testMatch: /login_analysis.*\.spec\.js/, + use: { + browserName: 'chromium', + // No storageState - fresh browser for login + }, + }, + + // ========================================== + // AUTHENTICATED TESTS - Need login (use storage state) + // ========================================== + { + name: 'chromium-authenticated', + + testMatch: /.*\.auth\.spec\.js/, + // Smart dependency: Only depend on login if storage state is invalid + dependencies: storageStateValid ? [] : ['login-test'], + use: { + browserName: 'chromium', + // Always set storage state for authenticated tests + storageState: storageStatePath + }, + }, + + // ========================================== + // UNAUTHENTICATED TESTS - Public pages (no login) + // ========================================== + { + name: 'chromium-noauth', + + testMatch: /.*\.noauth\.spec\.js/, + use: { + browserName: 'chromium', + // No storageState - fresh browser for public pages + }, + }, + + // // ========================================== + // // FIREFOX BROWSER + // // ========================================== + // { + // name: 'firefox-authenticated', + // testMatch: /.*\.auth\.spec\.js/, + // use: { + // browserName: 'firefox', + // viewport: null, + // storageState: '.auth/storage-state.json', + // }, + // dependencies: ['setup'], + // }, + // { + // name: 'firefox-noauth', + // testMatch: /.*\.noauth\.spec\.js/, + // use: { browserName: 'firefox', viewport: null }, + // }, + // { + // name: 'firefox-login-tests', + // testMatch: /login.*\.spec\.js/, + // use: { browserName: 'firefox', viewport: null }, + // }, + + // // ========================================== + // // WEBKIT (Safari) BROWSER + // // ========================================== + // { + // name: 'webkit-authenticated', + // testMatch: /.*\.auth\.spec\.js/, + // use: { + // browserName: 'webkit', + // viewport: null, + // storageState: '.auth/storage-state.json', + // }, + // dependencies: ['setup'], + // }, + // { + // name: 'webkit-noauth', + // testMatch: /.*\.noauth\.spec\.js/, + // use: { browserName: 'webkit', viewport: null }, + // }, + // { + // name: 'webkit-login-tests', + // testMatch: /login.*\.spec\.js/, + // use: { browserName: 'webkit', viewport: null }, + // }, + ], +}); diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/BasePage.js b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/BasePage.js new file mode 100644 index 0000000..90cd875 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/BasePage.js @@ -0,0 +1,28 @@ +export class BasePage { + /** + * @param {import('playwright').Page} page + */ + constructor(page) { + this.page = page; + } + + /** + * Wait for navigation to a specific URL with timeout (default 60s) + * @param {string} url + * @param {number} [timeout=60000] + */ + async waitForUrl(url, timeout = 60000) { + await this.page.waitForURL(url, { timeout }); + return this; + } + + /** + * Wait for element to be visible + * @param {import('playwright').Locator} locator + * @param {number} [timeout=30000] + */ + async waitForVisible(locator, timeout = 30000) { + await locator.waitFor({ state: 'visible', timeout }); + return this; + } +} diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/HomePage.js b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/HomePage.js new file mode 100644 index 0000000..c4baa01 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/HomePage.js @@ -0,0 +1,12 @@ +import { BasePage } from './BasePage.js'; + +export class HomePage extends BasePage { + /** + * Navigate to homepage + * @returns {Promise} + */ + async navigateToHomepage() { + await this.page.goto('https://www.mortgage.leumi.co.il', { waitUntil: 'domcontentloaded', timeout: 60000 }); + return this; + } +} diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageStartPage.js b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageStartPage.js new file mode 100644 index 0000000..2cdcc7e --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageStartPage.js @@ -0,0 +1,31 @@ +import { BasePage } from './BasePage.js'; +import { MortgageWorkflowPage } from './MortgageWorkflowPage.js'; + +export class MortgageStartPage extends BasePage { + /** + * Selector for 'בואו נתחיל' (Let's Start) button + * Primary: page.getByRole('link', { name: 'בואו נתחיל' }) + * Alternate 1: page.getByRole('link', { name: /בואו נתחיל/ }) + * Alternate 2: page.locator('[class*="Menu"]').getByRole('link', { name: 'בואו נתחיל' }) + */ + constructor(page) { + super(page); + // Use alternate selector marked as unique in scenario JSON + this.startBtn = page.locator('[class*="Menu"]').getByRole('link', { name: 'בואו נתחיל' }); + // Alternate selectors: + // this.startBtnAlt1 = page.getByRole('link', { name: /בואו נתחיל/ }); + // this.startBtnAlt2 = page.getByRole('link', { name: 'בואו נתחיל' }); + } + + /** + * Click the 'בואו נתחיל' button to initiate mortgage workflow + * @returns {Promise} + */ + async clickStartButton() { + await this.startBtn.waitFor({ state: 'visible', timeout: 30000 }); + await this.startBtn.click({ timeout: 30000 }); + // Navigation is expected after click, so wait for workflow page URL (allow query params) + await this.page.waitForURL(/https:\/\/mortgage\.leumi\.co\.il\/minisite\/mortgage.*/, { timeout: 60000 }); + return new MortgageWorkflowPage(this.page); + } +} diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageWorkflowPage.js b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageWorkflowPage.js new file mode 100644 index 0000000..60f870d --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/pom/MortgageWorkflowPage.js @@ -0,0 +1,12 @@ +import { BasePage } from './BasePage.js'; + +export class MortgageWorkflowPage extends BasePage { + /** + * Navigate to mortgage workflow page + * @returns {Promise} + */ + async navigateToWorkflow() { + await this.page.goto('https://mortgage.leumi.co.il/minisite/mortgage', { waitUntil: 'domcontentloaded', timeout: 60000 }); + return this; + } +} diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/w01_mortgage_1_pom.noauth.spec.js b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/w01_mortgage_1_pom.noauth.spec.js new file mode 100644 index 0000000..0f40b92 --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/pom_tests/w01_mortgage_1_pom.noauth.spec.js @@ -0,0 +1,39 @@ +import 'dotenv/config'; +import { test, expect } from '@playwright/test'; +import { HomePage } from './pom/HomePage.js'; +import { MortgageStartPage } from './pom/MortgageStartPage.js'; +import { MortgageWorkflowPage } from './pom/MortgageWorkflowPage.js'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +let stepTimeout30 = { timeout: 30000 }; + +const BASE_URL = process.env.BASE_URL; +const BASE_HOST_URL = process.env.BASE_HOST_URL; + +// Regex for workflow page URL to allow query params +const WORKFLOW_URL_REGEX = /https:\/\/mortgage\.leumi\.co\.il\/minisite\/mortgage.*/; + +test('Discovered Workflow: e2e_business_workflow - Complete User Journey', { tag: ['@smoke'] }, async ({ page }) => { + // Step 1: Navigate to homepage + const homePage = new HomePage(page); + await homePage.navigateToHomepage(); + await expect(page).toHaveURL('https://www.mortgage.leumi.co.il', stepTimeout30); + + // Step 2: Click the 'בואו נתחיל' button to initiate mortgage workflow + const mortgageStartPage = new MortgageStartPage(page); + await mortgageStartPage.clickStartButton(); + await expect(page).toHaveURL(WORKFLOW_URL_REGEX, stepTimeout30); + + // Step 4: Return to homepage for fresh start + await homePage.navigateToHomepage(); + await expect(page).toHaveURL('https://www.mortgage.leumi.co.il', stepTimeout30); + + // Step 5: Repeat click on 'בואו נתחיל' button to confirm selector stability + await mortgageStartPage.clickStartButton(); + await expect(page).toHaveURL(WORKFLOW_URL_REGEX, stepTimeout30); +}); + diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/WF001_mortgage_1.json b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/WF001_mortgage_1.json new file mode 100644 index 0000000..dda6cdd --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/WF001_mortgage_1.json @@ -0,0 +1,219 @@ +{ + "site_type": "service", + "site_category": "Mortgage application and information portal", + "confidence_score": 0.95, + "user_journeys": [ + { + "journey_name": "Primary Business Workflow", + "description": "Main user flow", + "business_value": "Enable users to start the mortgage application process", + "user_persona": "Prospective homebuyers seeking mortgage information", + "frequency": "daily", + "complexity": "low" + } + ], + "proposed_scenarios": [ + { + "scenario_name": "Discovered Workflow: e2e_business_workflow - Complete User Journey", + "description": "Comprehensive test covering the initiation of the mortgage workflow", + "workflow_narrative": "A prospective homebuyer navigates to the Leumi mortgage homepage and initiates the mortgage workflow by clicking the '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' (Let's Start) button. The agent confirmed selector stability by repeating the workflow initiation, ensuring accessibility and reliability.", + "playwright_implementation_guidance": [ + "Use waitForSelector to ensure the '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' button is visible before clicking.", + "Validate navigation by checking the resulting URL after each click.", + "Repeat the workflow initiation to confirm selector stability." + ], + "test_type": "e2e_business_workflow", + "priority": "high", + "business_goal": "Verify users can reliably initiate the mortgage workflow from the homepage", + "user_story": "As a prospective homebuyer, I want to start the mortgage workflow so that I can begin my mortgage application process online.", + "detailed_steps": [ + { + "step_number": 1, + "action": "Navigate to homepage", + "component": "Navigation", + "description": "Load homepage", + "expected_page_url": "https://www.mortgage.leumi.co.il", + "verification_point": "Page loaded", + "business_impact": "Site accessibility", + "selector": "page.goto('https://www.mortgage.leumi.co.il', { waitUntil: 'domcontentloaded' })", + "confidence": 100, + "based_on_interaction": true, + "all_selectors": [], + "web_component_parent": null, + "page_context": { + "suggested_page_class": "HomePage", + "page_url_pattern": "/" + }, + "method_context": { + "suggested_method_name": "navigateToHomepage", + "action_type": "navigate" + } + }, + { + "step_number": 2, + "action": "Click", + "component": "Workflow Initiation Button", + "description": "Click the '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' (Let's Start) button to initiate mortgage workflow", + "expected_page_url": "https://www.mortgage.leumi.co.il/", + "verification_point": "Button click triggers navigation", + "business_impact": "Workflow progress", + "selector": "page.getByRole('link', { name: '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' })", + "all_selectors": [ + { + "selector": "page.getByRole('link', { name: /\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc/ })", + "strategy": "role_name_regex", + "confidence": 95, + "is_unique": false + }, + { + "selector": "page.locator('[class*=\"Menu\"]').getByRole('link', { name: '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' })", + "strategy": "portal_role_name", + "confidence": 92, + "is_unique": true + } + ], + "confidence": 99, + "based_on_interaction": true, + "web_component_parent": null, + "page_context": { + "suggested_page_class": "MortgageStartPage", + "page_url_pattern": "/" + }, + "method_context": { + "suggested_method_name": "clickStartButton", + "action_type": "click" + } + }, + { + "step_number": 3, + "action": "Navigate", + "component": "Navigation", + "description": "Navigate to mortgage workflow page after button click", + "expected_page_url": "https://mortgage.leumi.co.il/minisite/mortgage", + "verification_point": "Mortgage workflow page loaded", + "business_impact": "User enters mortgage workflow", + "selector": "page.goto('https://mortgage.leumi.co.il/minisite/mortgage', { waitUntil: 'domcontentloaded' })", + "all_selectors": [], + "confidence": 100, + "based_on_interaction": true, + "web_component_parent": null, + "page_context": { + "suggested_page_class": "MortgageWorkflowPage", + "page_url_pattern": "/minisite/mortgage" + }, + "method_context": { + "suggested_method_name": "navigateToWorkflow", + "action_type": "navigate" + } + }, + { + "step_number": 4, + "action": "Navigate", + "component": "Navigation", + "description": "Return to homepage for fresh start", + "expected_page_url": "https://www.mortgage.leumi.co.il", + "verification_point": "Homepage loaded again", + "business_impact": "Workflow restart for selector stability", + "selector": "page.goto('https://www.mortgage.leumi.co.il', { waitUntil: 'domcontentloaded' })", + "all_selectors": [], + "confidence": 100, + "based_on_interaction": true, + "web_component_parent": null, + "page_context": { + "suggested_page_class": "HomePage", + "page_url_pattern": "/" + }, + "method_context": { + "suggested_method_name": "navigateToHomepage", + "action_type": "navigate" + } + }, + { + "step_number": 5, + "action": "Click", + "component": "Workflow Initiation Button", + "description": "Repeat click on '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' (Let's Start) button to confirm selector stability", + "expected_page_url": "https://www.mortgage.leumi.co.il/", + "verification_point": "Button click triggers navigation again", + "business_impact": "Workflow progress and selector reliability", + "selector": "page.getByRole('link', { name: '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' })", + "all_selectors": [ + { + "selector": "page.getByRole('link', { name: /\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc/ })", + "strategy": "role_name_regex", + "confidence": 95, + "is_unique": false + }, + { + "selector": "page.locator('[class*=\"Menu\"]').getByRole('link', { name: '\u05d1\u05d5\u05d0\u05d5 \u05e0\u05ea\u05d7\u05d9\u05dc' })", + "strategy": "portal_role_name", + "confidence": 92, + "is_unique": true + } + ], + "confidence": 99, + "based_on_interaction": true, + "web_component_parent": null, + "page_context": { + "suggested_page_class": "MortgageStartPage", + "page_url_pattern": "/" + }, + "method_context": { + "suggested_method_name": "clickStartButton", + "action_type": "click" + } + }, + { + "step_number": 6, + "action": "Navigate", + "component": "Navigation", + "description": "Navigate to mortgage workflow page after repeated button click", + "expected_page_url": "https://mortgage.leumi.co.il/minisite/mortgage", + "verification_point": "Mortgage workflow page loaded again", + "business_impact": "User re-enters mortgage workflow", + "selector": "page.goto('https://mortgage.leumi.co.il/minisite/mortgage', { waitUntil: 'domcontentloaded' })", + "all_selectors": [], + "confidence": 100, + "based_on_interaction": true, + "web_component_parent": null, + "page_context": { + "suggested_page_class": "MortgageWorkflowPage", + "page_url_pattern": "/minisite/mortgage" + }, + "method_context": { + "suggested_method_name": "navigateToWorkflow", + "action_type": "navigate" + } + } + ], + "expected_results": [ + "User completes workflow initiation twice", + "No errors encountered", + "Selector stability confirmed" + ], + "edge_cases_to_test": [ + "Slow network conditions", + "User interrupts workflow and restarts", + "Button not visible due to layout changes" + ], + "data_requirements": [ + "Test accounts not required for initiation", + "Valid homepage access" + ], + "prerequisites": [ + "Site accessible", + "Homepage loads successfully" + ] + } + ], + "site_url": "https://www.mortgage.leumi.co.il", + "test_name": "w01_mortgage_1", + "login_mechanisms": [ + "general_interaction" + ], + "login_completion_state": "successful", + "analysis_timestamp": "2026-04-27T06:58:13.381825", + "auth_required": false, + "starting_url": null, + "workflow_id": "WF001" +} \ No newline at end of file diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/reports/WF001_mortgage_1.pdf b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/reports/WF001_mortgage_1.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c55398cc90a24bec8ee7ba21bc9a9f9e12070638 GIT binary patch literal 121591 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­dW|lb>RT6O@ue};wCSVzezSG(O(*l0v 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%0DR%zE#(*oql_ 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 literal 0 HcmV?d00001 diff --git a/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/summaries/WF001_mortgage_1.md b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/summaries/WF001_mortgage_1.md new file mode 100644 index 0000000..4f1208c --- /dev/null +++ b/generated_tests/www.mortgage.leumi.co.il/playwright_tests/www.mortgage.leumi.co.il/playwright_tests/scenarios/summaries/WF001_mortgage_1.md @@ -0,0 +1,75 @@ +# Scenario Summary: w01_mortgage_1 + +## Overview + +- **Workflow ID**: WF001 +- **Title**: Mortgage (1) +- **Goal**: Mortgage (1) +- **Feature Area**: be2bf4ce-8e7c-4d7f-a31b-ceb4abbe131f +- **Site URL**: https://www.mortgage.leumi.co.il +- **Site Type**: service — Mortgage application and information portal +- **Confidence Score**: 0.95 +- **Auth Required**: False +- **Generated On**: 2026-04-27T06:58:13.381825 + +## User Journeys + +### 1. Primary Business Workflow +_Main user flow_ + +- **Business Value**: Enable users to start the mortgage application process +- **User Persona**: Prospective homebuyers seeking mortgage information +- **Frequency**: daily +- **Complexity**: low + +## Scenarios + +### 1. Discovered Workflow: e2e_business_workflow - Complete User Journey +**Type**: e2e_business_workflow | **Priority**: high + +> Comprehensive test covering the initiation of the mortgage workflow + +**Business Goal**: Verify users can reliably initiate the mortgage workflow from the homepage + +**User Story**: As a prospective homebuyer, I want to start the mortgage workflow so that I can begin my mortgage application process online. + +**Workflow Narrative**: +A prospective homebuyer navigates to the Leumi mortgage homepage and initiates the mortgage workflow by clicking the 'בואו נתחיל' (Let's Start) button. The agent confirmed selector stability by repeating the workflow initiation, ensuring accessibility and reliability. + +#### Implementation Guidance: +- Use waitForSelector to ensure the 'בואו נתחיל' button is visible before clicking. +- Validate navigation by checking the resulting URL after each click. +- Repeat the workflow initiation to confirm selector stability. + +#### Detailed Steps: + +| # | Action | Component | Description | Verification | URL | +|---|--------|-----------|-------------|--------------|-----| +| 1 | Navigate to homepage | Navigation | Load homepage | Page loaded | https://www.mortgage.leumi.co.il | +| 2 | Click | Workflow Initiation Button | Click the 'בואו נתחיל' (Let's Start) button to initiate mortgage workflow | Button click triggers navigation | https://www.mortgage.leumi.co.il/ | +| 3 | Navigate | Navigation | Navigate to mortgage workflow page after button click | Mortgage workflow page loaded | https://mortgage.leumi.co.il/minisite/mortgage | +| 4 | Navigate | Navigation | Return to homepage for fresh start | Homepage loaded again | https://www.mortgage.leumi.co.il | +| 5 | Click | Workflow Initiation Button | Repeat click on 'בואו נתחיל' (Let's Start) button to confirm selector stability | Button click triggers navigation again | https://www.mortgage.leumi.co.il/ | +| 6 | Navigate | Navigation | Navigate to mortgage workflow page after repeated button click | Mortgage workflow page loaded again | https://mortgage.leumi.co.il/minisite/mortgage | + +#### Expected Results: +- User completes workflow initiation twice +- No errors encountered +- Selector stability confirmed + +#### Edge Cases: +- Slow network conditions +- User interrupts workflow and restarts +- Button not visible due to layout changes + +#### Data Requirements: +- Test accounts not required for initiation +- Valid homepage access + +#### Prerequisites: +- Site accessible +- Homepage loads successfully + +## Captured Selectors + +- **Total**: 4