Version 1.0 • October 2026Project Case Study
AI Automation Engineering · Cross-Site Prompt Execution · QA Validation

ConcentricAI — AI Site Automation

Cross-Site Prompt Execution, Response Capture, and Repeatable Validation

A Python-based automation approach for interacting with multiple AI websites, submitting controlled prompts, capturing responses, and recording execution evidence.

Project ScopeMulti-AI Websites
Core ToolingPython + Playwright
Test ScenariosSynthetic PII / PCI / GDPR
Primary OutputsResponse Text & Artifacts
ARCHITECTURE DIAGRAM PLACEHOLDER

ConcentricAI Multi-Site Playwright Orchestration

Cross-site prompt dispatch, site-adapter isolation, synthetic PII probes, and structured evidence capture.

Section 01

Executive Summary

ConcentricAI AI Site Automation is a cross-site testing initiative designed to automate the process of opening AI websites, submitting prompts, waiting for generated answers, and capturing the resulting output in a repeatable way. The project addresses the effort involved in manually testing the same prompt or test scenario across several AI services, where page structure, access requirements, response timing, and interaction patterns can differ.

The approach uses Python and Playwright to drive browser interactions. For sites that expose a stable, permitted request interface, a request-based path may be evaluated separately; browser automation remains the common path for sites that require interaction through their user interface. The workflow records useful execution evidence such as the site URL, run status, and response text, including a plain-text response artifact when configured.

Case-Study Summary

AreaCase-Study Summary
Primary goalRun controlled prompts against multiple AI websites and capture their responses consistently.
Core toolingPython and Playwright; optional HTTP/API checks where an appropriate supported interface exists.
Access strategyPrefer sites that allow unauthenticated use for public test scenarios; handle login-required sites as a separate access state.
EvidenceTarget URL, prompt/test case identifier, response text, execution outcome, and diagnostic artifacts.
Success criteriaA run clearly reports whether a prompt was submitted and a response was captured, or why the scenario could not complete.
Scope note: The project context available for this draft does not provide verified run counts, timing benchmarks, pass rates, or a final list of supported sites. Those figures are intentionally not invented. Measured results are collected directly from live target configurations.
Section 02

Project Overview

2.1 Problem Statement

Testing AI websites manually is repetitive. A tester must open each site, determine whether it is available without signing in, locate the prompt field, submit a message, wait for the answer, and copy the response into a consistent record. Differences in page layout, asynchronous response generation, bot checks, rate limits, and authentication can make the same workflow behave differently from one site to another.

2.2 Objectives

Automate prompt submission and response capture across a configurable list of AI websites.
Keep site-specific locators and interaction logic isolated so that one site change does not require rewriting the runner.
Distinguish successful response capture from blocked, unavailable, login-required, timed-out, or structurally changed pages.
Save response text and execution metadata for later review, comparison, and regression testing.
Use synthetic test data when checking how sites respond to sensitive-data patterns.

2.3 Intended Users

QA & Automation Engineers

Validating cross-site interaction flows, prompt acceptance, and response completion.

Security & Privacy Testers

Evaluating expected handling and refusal of synthetic sensitive-data patterns.

Core Developers

Reviewing response-capture failures, locator updates, and site-adapter maintenance.

Section 03

Scope and Test Coverage

Test AreaWhat is CheckedExample Outcome
Site availabilityTarget URL opens and the page reaches a usable state.Available / unavailable / navigation error
Access stateWhether prompt workflow can proceed without authentication, or requires a session.No-login / login-required / access blocked
Prompt entryPrompt input or editor can be located and populated.Input located / locator failure
Prompt submissionSubmit action is triggered and the site accepts the prompt.Submitted / submission failed
Response generationAutomation waits for response completion or a configured timeout.Response received / timeout / empty response
Response captureVisible answer text is extracted and written to configured output.Captured / extraction failed
RepeatabilityThe same scenario can be rerun with consistent identifiers and evidence.Comparable run records
Sensitive-pattern checksSynthetic PII/PCI/GDPR-style examples can be used to observe site behavior.Observed response saved for review

Site coverage is configuration-dependent. A site should be marked supported only after its current flow has been exercised successfully; site names and coverage counts are maintained in an external inventory.

Section 04

Automation Architecture

The recommended architecture separates the shared execution workflow from site-specific behavior. This keeps navigation, result collection, and reporting consistent while allowing each website to use its own locator strategy and response-completion signal.

ComponentResponsibility
Test inventory / configStores target site URL, site identifier, access mode, prompt scenario, timeout, and custom settings.
Python orchestratorSelects a site and test case, starts the run, coordinates execution, and records the final status.
Playwright browser layerOpens page, locates prompt control, enters prompt, submits, waits for answer, and extracts visible text.
Optional request adapterUsed only when a supported and permitted endpoint is available; not assumed for every website.
Session managerSupports a manually established browser session when authentication is necessary (no hard-coded secrets).
Response & evidence writerStores response text and metadata: site, URL, timestamp, outcome, and diagnostic information.
DiagnosticsCaptures failure reason and, where appropriate, screenshots, page state, or logs for debugging.
4.2 Example Project Layout
concentricai-site-automation/
├── config/
│   └── sites.yaml              # Site URLs, access mode, timeouts
├── tests/
│   ├── prompts/                # Reusable prompt scenarios
│   └── test_site_flows.py      # Automated test entry points
├── site_adapters/
│   ├── base_adapter.py         # Shared interaction contract
│   └── <site_name>.py          # Site-specific locators and wait rules
├── core/
│   ├── browser_manager.py      # Playwright lifecycle and contexts
│   ├── session_manager.py     # Optional saved-session handling
│   └── result_writer.py       # Response and metadata output
├── reports/                    # Run summaries and response artifacts
├── logs/                       # Execution diagnostics
└── README.md
Section 05

End-to-End Test Lifecycle

PhaseKey ActionsPass Condition
1. PrepareLoad configuration, validate test input, create a run identifier, prepare browser/session.Inputs are valid and execution can start.
2. NavigateOpen the site URL and wait for a stable page state.Expected page is reachable.
3. Assess accessCheck for prompt UI, login wall, consent dialog, or access restriction.Access state is classified explicitly.
4. SubmitFind the prompt control, enter the test prompt, and trigger submission.Prompt is accepted by the interface.
5. Wait and captureWait for response completion, extract answer text, handle empty response and timeout.Non-empty response captured, or clear failure.
6. PersistWrite response text and metadata; save diagnostics on failure.Artifacts linked to correct site and run.
7. Continue & summarizeMove to the next configured site and summarize overall statuses.Run ends with per-site actionable outcomes.
Section 06

Access and Session Handling

Unauthenticated Flow

Used for sites where the prompt and response workflow is genuinely available without an account. Highest velocity for broad regression sweeps.

Authenticated Flow

Where permitted, complete the first login manually and reuse a controlled browser session/profile. Never hard-code passwords in source code.

Unsupported / Blocked Flow

Record the site as login-required, blocked, or unsupported rather than attempting to bypass anti-bot mechanisms or access controls.

Request-Based Flow

Do not assume internal frontend calls are stable public APIs. Use documented or authorized endpoints and respect rate limits strictly.

Section 07

Test Data and Responsible Validation

The project explores synthetic examples representing sensitive-data categories, including PII, PCI, and GDPR-related patterns. Real customer data is strictly forbidden:

CategorySafe Test ApproachHandling Guidance
PII-style patternsFictional names, addresses, phone numbers, or identifier-shaped tokens.Label as synthetic; do not use real individual data.
PCI-style patternsPayment-card test values from approved test sources or invalid synthetics.Never include real cardholder data, CVV/CVC, or PINs.
GDPR-related scenariosSynthetic personal-data examples checking if the site echoes or refuses data.Record observed behavior without claiming legal compliance.
Prompt-injection probesApproved, non-harmful test prompts aligned with test plans.Keep scenarios scoped; document expected vs observed outcome.
Section 08

Results, Reporting and Artifacts

ArtifactRecommended ContentsPrimary Use
Response text (resp.txt)Captured answer text for a completed prompt.Quick review and downstream text comparison.
Structured run result (JSON)Run ID, site ID, URL, timestamp, access state, prompt ID, status, duration.Filtering, aggregation, and regression analysis.
Execution logNavigation, locator, submit, wait, and extraction events with timestamps.Debugging flaky or changed site flows.
Screenshot / page evidenceFailure-state screenshot or minimal diagnostic evidence.Investigating login walls and locator failures.
HTML summary reportPer-site status, response availability, durations, and artifact links.Readable test-run overview for stakeholders.

8.1 Suggested Status Model

PASSLOGIN_REQUIREDBLOCKEDTIMEOUTLOCATOR_ERROREMPTY_RESPONSEERROR
Section 09

Challenges and Design Considerations

ChallengeImpactEngineering Mitigation
Different page structuresA generic locator fails across different sites.Use isolated site adapters and maintain specific locator rules.
Dynamic response generationFixed sleeps capture partial answers or cause flakiness.Prefer explicit waits for completion indicators or stable text buffers.
Login and signup wallsA site cannot be exercised in an anonymous flow.Classify access state cleanly and separate authenticated runs.
Site UI changesSelectors break without prior notice.Capture failure diagnostics and run smoke tests after updates.
Rate limits & anti-automationRuns throttled or blocked.Conservative concurrency, respectful pacing, record restrictions.
Response variabilityNon-deterministic AI output.Assert workflow completion and structure rather than brittle exact matches.
Secrets & sensitive dataSaved sessions leak account data.Keep secrets out of source control and use synthetic inputs.
Section 10

Reusability and Future Enhancements

Configuration-Driven Onboarding

Add a new site entry and adapter without altering the shared Python runner pipeline.

Site Health Smoke Checks

Lightweight recurring checks to detect selector drift or newly erected login barriers.

Controlled Concurrency

Parallel multi-site execution calibrated to respect provider rate limits and browser resources.

Automated Output Diffing

Compare length, safety refusals, or structural schema across multiple AI vendors.

Continuous CI/CD Runs

Execute small stable sweeps on PRs and broad matrix coverage on scheduled nightlies.

Retention Controls

Automated TTL policies for prompts, captured answers, screenshots, and session cookies.

Section 11

Conclusion

ConcentricAI AI Site Automation aims to make multi-site AI interaction testing more repeatable by standardizing navigation, prompt submission, response capture, and evidence collection. Python and Playwright provide a flexible browser-automation foundation, while site-specific adapters and explicit access-state handling help accommodate the differences between AI websites.

The most important engineering outcome is not simply opening a site or sending a prompt: it is producing a traceable result that clearly shows whether the interaction succeeded, what response was captured, and what prevented completion when it did not. With measured run data and a maintained site inventory, this framework supports repeatable QA, response-behavior checks, and future regression automation.