{"id":"ca321085-9a50-4e00-9866-19469d46e6ac","slug":"clawhub-zhanghengyi1986-afk-web-tester","name":"Web Tester","description":"Web UI testing and browser automation using Playwright or Selenium. Navigate pages, interact with elements, take screenshots, validate UI state, generate E2E...","canonicalUrl":"https://www.xpersona.co/agent/clawhub-zhanghengyi1986-afk-web-tester","sourceUrl":"https://clawhub.ai/zhanghengyi1986-afk/web-tester","homepage":"https://clawhub.ai/zhanghengyi1986-afk/skills/web-tester","source":"CLAWHUB","vendor":{"slug":"clawhub","label":"Clawhub","url":"https://clawhub.ai/zhanghengyi1986-afk/skills/web-tester"},"protocols":["OPENCLEW"],"capabilities":[],"trustScore":null,"trustConfidence":"unknown","artifactCount":0,"benchmarkCount":0,"lastRelease":"1.0.0","freshnessAt":"2026-10-11T18:33:19.583Z","freshnessLabel":"Oct 11, 2026","securityReviewed":true,"openapiReady":false,"stats":[{"label":"Trust score","value":"Unknown"},{"label":"Compatibility","value":"OpenClaw"},{"label":"Freshness","value":"Oct 11, 2026"},{"label":"Vendor","value":"Clawhub"},{"label":"Artifacts","value":"0"},{"label":"Benchmarks","value":"0"},{"label":"Last release","value":"1.0.0"}],"factsPreview":[{"factKey":"vendor","category":"vendor","label":"Vendor","value":"Clawhub","href":"https://clawhub.ai/zhanghengyi1986-afk/skills/web-tester","sourceUrl":"https://clawhub.ai/zhanghengyi1986-afk/skills/web-tester","sourceType":"profile","confidence":"medium","observedAt":"2026-10-11T18:33:19.651Z","isPublic":true},{"factKey":"protocols","category":"compatibility","label":"Protocol compatibility","value":"OpenClaw","href":"https://www.xpersona.co/api/v1/agents/clawhub-zhanghengyi1986-afk-web-tester/contract","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-zhanghengyi1986-afk-web-tester/contract","sourceType":"contract","confidence":"medium","observedAt":"2026-10-11T18:33:19.651Z","isPublic":true},{"factKey":"traction","category":"adoption","label":"Adoption signal","value":"1K downloads","href":"https://clawhub.ai/zhanghengyi1986-afk/web-tester","sourceUrl":"https://clawhub.ai/zhanghengyi1986-afk/web-tester","sourceType":"profile","confidence":"medium","observedAt":"2026-10-11T18:33:19.651Z","isPublic":true},{"factKey":"latest_release","category":"release","label":"Latest release","value":"1.0.0","href":"https://clawhub.ai/zhanghengyi1986-afk/web-tester","sourceUrl":"https://clawhub.ai/zhanghengyi1986-afk/web-tester","sourceType":"release","confidence":"medium","observedAt":"2026-04-15T01:46:41.336Z","isPublic":true},{"factKey":"handshake_status","category":"security","label":"Handshake status","value":"UNKNOWN","href":"https://www.xpersona.co/api/v1/agents/clawhub-zhanghengyi1986-afk-web-tester/trust","sourceUrl":"https://www.xpersona.co/api/v1/agents/clawhub-zhanghengyi1986-afk-web-tester/trust","sourceType":"trust","confidence":"medium","observedAt":null,"isPublic":true}],"highlights":["1K downloads","Trust evidence available"],"agentCard":{"name":"Web Tester","description":"Web UI testing and browser automation using Playwright or Selenium. Navigate pages, interact with elements, take screenshots, validate UI state, generate E2E...","source":"CLAWHUB","sourceId":"clawhub:s173knyfg55hja2f40zjr9egvs84wkbp:web-tester","homepage":"https://clawhub.ai/zhanghengyi1986-afk/skills/web-tester","repository":"https://clawhub.ai/zhanghengyi1986-afk/web-tester","documentation":"https://www.xpersona.co/agent/clawhub-zhanghengyi1986-afk-web-tester","protocols":["OPENCLEW"],"examples":[{"kind":"example","language":"bash","snippet":"# Navigate and screenshot\nnpx -y playwright@latest test --browser=chromium -g \"test name\"\n\n# Or write inline script\nnode -e \"\nconst { chromium } = require('playwright');\n(async () => {\n  const browser = await chromium.launch({ headless: true });\n  const page = await browser.newPage();\n  await page.goto('https://example.com');\n  console.log('Title:', await page.title());\n  await page.screenshot({ path: '/tmp/screenshot.png' });\n  await browser.close();\n})();\n\""},{"kind":"example","language":"javascript","snippet":"// tests/example.spec.js\nconst { test, expect } = require('@playwright/test');\n\ntest.describe('Login Page Tests', () => {\n\n  test('TC001: Successful login', async ({ page }) => {\n    await page.goto('https://app.example.com/login');\n\n    // Fill form\n    await page.fill('input[name=\"username\"]', 'admin');\n    await page.fill('input[name=\"password\"]', 'Admin@123');\n    await page.click('button[type=\"submit\"]');\n\n    // Verify redirect\n    await expect(page).toHaveURL(/dashboard/);\n    await expect(page.locator('h1')).toContainText('Welcome');\n  });\n\n  test('TC002: Login with empty fields', async ({ page }) => {\n    await page.goto('https://app.example.com/login');\n    await page.click('button[type=\"submit\"]');\n\n    // Verify validation messages\n    await expect(page.locator('.error-message')).toBeVisible();\n  });\n\n  test('TC003: Login with wrong password', async ({ page }) => {\n    await page.goto('https://app.example.com/login');\n    await page.fill('input[name=\"username\"]', 'admin');\n    await page.fill('input[name=\"password\"]', 'wrongpass');\n    await page.click('button[type=\"submit\"]');\n\n    await expect(page.locator('.error-alert')).toContainText('Invalid');\n  });\n});"}]}}