web-browser-automation — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited web-browser-automation (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This guide covers comprehensive web browser automation on macOS desktop, focusing on automation (not testing). We cover four major automation frameworks with practical examples for real-world scenarios.
PyXA Installation: To use PyXA examples in this skill, see the installation instructions in automating-mac-apps skill (PyXA Installation section).
| Tool | Primary Use | Key Advantages |
|---|---|---|
| PyXA | macOS-native control | Direct OS integration, Arc spaces |
| Playwright | Cross-browser testing | Auto-waiting, mobile emulation |
| Selenium | Legacy enterprise | Mature ecosystem, wide language support |
| Puppeteer | Headless Chrome | Fast execution, PDF generation |
See references/browser-compatibility-matrix.md for detailed browser support.
pip install PyXAreferences/pyxa-integration.mdpip install playwright && playwright installreferences/playwright-automation.mdpip install seleniumreferences/selenium-webdriver.mdnpm install puppeteerreferences/puppeteer-automation.mdComplete workflow examples for common automation scenarios:
Guide: references/workflows.md#workflow-1-multi-browser-tab-management
Guide: references/workflows.md#workflow-2-automated-research-and-data-collection
Guide: references/workflows.md#workflow-3-cross-browser-testing-suite
Guide: references/workflows.md#workflow-4-web-scraping-and-data-extraction
# PyXA approach for Chrome
chrome = PyXA.Application("Google Chrome")
chrome.new_window("https://example.com")# PyXA tab filtering
tabs = chrome.windows()[0].tabs()
work_tabs = [tab for tab in tabs if "meeting" in tab.title().lower()]
for tab in work_tabs:
tab.close()# PyXA JavaScript execution
content = tab.execute_javascript("document.body.innerText")
links = tab.execute_javascript("Array.from(document.querySelectorAll('a')).map(a => a.href)")# PyXA multi-browser control
browsers = [PyXA.Application("Google Chrome"), PyXA.Application("Microsoft Edge")]
for browser in browsers:
browser.new_tab("https://shared-resource.com")# Playwright auto-waiting
page.fill("#username", "[email protected]")
page.click("text=Submit") # Auto-waits for element// Puppeteer screenshot
await page.screenshot({ path: 'capture.png', fullPage: true });
await page.pdf({ path: 'page.pdf', format: 'A4' });from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://example.com")
page.click("text=Get Started") # Auto-waits for element
page.fill("#search-input", "automation")
browser.close()For advanced Playwright features (contexts, viewports, dynamic content), see references/playwright-automation.md.
references/playwright-automation.md#network-interceptionreferences/selenium-webdriver.md#parallel-testingreferences/puppeteer-automation.md#performance-monitoringreferences/selenium-webdriver.md#browser-contexts-and-pagesAfter implementing browser automation:
references/pyxa-integration.md - macOS-native browser controlreferences/playwright-automation.md - Cross-browser testingreferences/selenium-webdriver.md - Enterprise automationreferences/puppeteer-automation.md - Node.js Chrome automationreferences/workflows.md - Complete automation scenarios~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.