- Home
- Skills
- Workflow Automation
- Autonomous Browser Automation Agent
Works with the AI Agents you already use
Autonomous Browser Automation Agent
Build resilient browser automation for navigation, data extraction, and form workflows using Playwright and Selenium.
$19.99
Autonomous Browser Automation Agent
Example session with this skill installed
Design a Playwright script to log into a portal at https://portal.example.com, navigate to the 'Reports' tab, and verify if the 'Monthly Summary' heading is visible.
- Read your context and instructions
- Compiled the autonomous browser automation
I have designed a resilient automation workflow for the portal login and verification task. The strategy prioritizes accessible locators and explicit state waits to ensure the script does not proceed until the page is ready.
Browser Automation Design: Portal Verification
| Component | Strategy |
|---|---|
| Start URL | https://portal.example.com |
| Auth Context | Authorized user session (via environment variables) |
| Primary Locator | page.getByRole('heading', { name: 'Monthly Summary' }) |
| Wait Condition | domcontentloaded followed by specific element visibility |
| Error Handling | Bounded retry (3x) for transient navigation timeouts |
import { chromium } from "playwright";
/**
* Task: Portal Report Verification
* Logic: Navigate, login, and verify 'Monthly Summary' visibility.
*/
(async () => {
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext();
const page = await context.newPage();
try {
// 1. Navigation with state verification
await page.goto("https://portal.example.com", {
waitUntil: "domcontentloaded",
timeout: 30000
});
// 2. Interaction (Assumes login form if not authenticated)
// Note: User must provide credentials via env vars
if (await page.getByLabel("Username").isVisible()) {
await page.getByLabel("Username").fill(process.env.PORTAL_USER);
await page.getByLabel("Password").fill(process.env.PORTAL_PASS);
await page.getByRole("button", { name: "Sign In" }).click();
}
// 3. Navigate to Reports
const reportsTab = page.getByRole("link", { name: "Reports" });
await reportsTab.click();
// 4. Verification
const summaryHeading = page.getByRole("heading", {
name: "Monthly Summary"
});
await summaryHeading.waitFor({ state: "visible", timeout: 5000 });
console.log("SUCCESS: Monthly Summary heading is visible.");
} catch (error) {
console.error("FAILURE: Workflow interrupted.", error.message);
} finally {
await browser.close();
}
})();
Next steps
- Configure
PORTAL_USERandPORTAL_PASSin your environment variables. - Run a trial in non-headless mode to confirm the 'Reports' link locator matches your specific UI.
- Integrate the script into your CI pipeline for periodic health checks.
Connects securely to your tools. The creator never sees your data.
About this skill
Brittle browser scripts break when a button moves or a page loads slowly. This skill provides the architecture for resilient, autonomous browser agents that handle dynamic states, verify outcomes, and recover from failures instead of just failing silently.
What it does
- Resilient navigation designs workflows that wait for specific page states and handle asynchronous loading.
- Locator strategy identifies elements using accessible roles and stable attributes to prevent breakages from layout changes.
- Form automation manages complex inputs, inline validation, and multi-step submission flows with safety checks.
- Data extraction structures information from dynamic pages while respecting pagination and rate limits.
- Error recovery implements bounded retries and handles stale elements, modals, and session timeouts.
How it works
- Scope definition identifies the target domain, authorized access, and specific completion criteria.
- Workflow mapping defines the sequence of page transitions, interaction points, and required input data.
- Logic implementation generates Playwright or Selenium patterns with explicit waits and state verification.
- Execution reporting provides a summary of verified actions, blocked steps, and diagnostic evidence for any failures.
Frameworks & tools
The skill specializes in Playwright and Selenium implementation patterns using JavaScript or Python. It focuses on modern web standards, semantic HTML, and accessible locators (ARIA roles).
Why this beats prompting it yourself
Generic prompts often produce "blind" scripts that rely on brittle CSS selectors or arbitrary sleep timers. This skill embeds engineering principles like state verification, bounded retries, and locator prioritisation to ensure automations work in production environments.
Use cases
- Automating repetitive internal form submissions and admin dashboard tasks.
- Building reliable scrapers for dynamic, JavaScript-heavy search results.
- Creating end-to-end smoke tests for complex multi-page web applications.
- Synchronizing data between legacy web portals without official APIs.
Known limitations
Does not bypass CAPTCHA, MFA, or anti-bot protections. Requires a connected browser runtime like Playwright or Selenium to execute generated logic.
Cannot bypass CAPTCHA, MFA, or bot detection. Logic requires a separate Playwright/Selenium runtime to execute. Does not store or manage credentials directly.
How to use
- 1
Connect your agent to the Agensi MCP
Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup
- 2
Sign in to Agensi
Your agent shows a sign-in link. Sign in and click Allow.
- 3
Ask for what you need
Your agent loads this skill and uses it on your task. It always asks before any payment.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill goes through the trust checks below.
Security scanned
Checked by our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scan
Security scan passed 9 days ago