selenium-sentinel

Design, debug, and harden authorized Python Selenium WebDriver automation and scraping workflows.

Updated Sep 11, 2026
One-click install
npx skills add https://github.com/Juanm0331123/selenium-sentinel --skill selenium-sentinel-juanm0331123
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: selenium-sentinel
Source: https://github.com/Juanm0331123/selenium-sentinel/tree/main/skills/selenium-sentinel
Command: npx skills add https://github.com/Juanm0331123/selenium-sentinel --skill selenium-sentinel-juanm0331123

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires selenium, and includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve? Selenium automation often fails silently through flaky waits, stale elements, unverified downloads, and leaked browser sessions. This Skill turns established Selenium guidance into concrete guardrails so agents build browser tests, scrapers, and UI workflows that are deterministic, observable, and safe to operate. ## Core Features & Use Cases - Drop-in Python toolkit: Isolated driver sessions, explicit waits, bounded pagination, verified downloads, resumable JSONL/CSV output with checkpoints, and redacted failure evidence. - Environment doctor and playbooks: A diagnostic script that reports Selenium, browser, and proxy configuration, plus references covering recipes, scraping, troubleshooting, browser environments, Grid/Remote, and the official Python API surface. - Use Case: You need to scrape a paginated listing that requires JavaScript rendering. The Skill guides reconnaissance, defines locator and column contracts, persists page-by-page with a checkpoint, verifies record counts against the announced total, and captures sanitized evidence on failure. ## Quick Start Ask the agent to build a Selenium scraper or fix a flaky WebDriver test, and have it run the selenium doctor script first to verify the environment.

Frequently Asked Questions about selenium-sentinel

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix flaky Selenium tests with explicit waits?

Replace time.sleep() with WebDriverWait and expected_conditions such as element_to_be_clickable or visibility_of_element_located, waiting for the state the next action needs. Keep implicit waits at zero and never mix them with explicit waits, since combining them produces unpredictable timeouts.

How to scrape a paginated website with Selenium Python?

Define a locator contract and column contract, then paginate by URL or Next-button clicks while waiting for staleness of the old rows. Persist records page by page to JSONL with a checkpoint so a crash costs one page, and verify the record count against the site's announced total.

Does Selenium support Remote WebDriver and Grid sessions?

Yes, use webdriver.Remote with W3C Options against a trusted Grid endpoint over HTTPS. Each worker needs a unique profile, download directory, and output sink, and uploads from the client require setting driver.file_detector to LocalFileDetector.

Why does StaleElementReferenceException happen in Selenium?

It occurs when the DOM is rebuilt after navigation, refresh, or AJAX replacement, invalidating previously located elements. Re-locate elements after any DOM-changing action, and after a click that triggers a re-render, wait for staleness_of the old element before finding its replacement.

How do I verify a file download completed in Selenium?

Poll the isolated download directory on the filesystem: confirm partial files like .crdownload or .part are gone, the size is stable, and the name, extension, and content signature match expectations. A click returning without an exception proves nothing about the file.

When should I not use Selenium for web scraping?

Avoid Selenium when an official API, bulk export, static HTTP response, or the page's own JSON endpoint can provide the data within your authorization. Selenium is justified only when rendering, authenticated UI state, or real interaction is required, and never for bypassing CAPTCHAs, rate limits, or access controls.