Safely automates configured button clicks on supported sites, with safety controls and a minimal UI. Built as a Manifest V3 Chrome/Chromium extension.
- Watches supported sites for configured buttons (e.g.,
Continue,Get Link). - Clicks only visible, clickable elements and adds a small random delay.
- Smart auto‑scroll helps surface lazy‑loaded buttons when pages instruct you to scroll.
- Blocks navigation to known bad domains via request interception.
- Popup provides an enable/disable toggle and per‑tab click history.
- Options page shows monitored sites, blocked domains, last action, and recent clicks.
teknoasian.comlinegee.netpahe.plus
You can add more sites in src/config/config.json, and you must also add their domains to manifest.json under content_scripts.matches for the content script to run.
- Download or clone this repository.
- Open
chrome://extensions/(oredge://extensions/). - Enable
Developer mode. - Click
Load unpackedand select the project folder. - Pin the extension and open the popup to toggle automation on/off.
- Visit a supported site and watch the Activity log in the popup.
- Content Script (
src/content/content.js)- Reads
src/config/config.json(or built‑in defaults) and filters by current hostname. - Observes DOM mutations and scans for configured selectors; ensures elements are visible and clickable.
- Applies a small random delay before clicking and reports status via
chrome.runtime.sendMessage. - Smart auto‑scroll: when instructed by page text or when buttons are off‑screen, scrolls to bring them into view and avoids scrolling if human verification is detected (e.g., reCAPTCHA).
- Reads
- Background Service Worker (
src/background/background.js)- Initializes default settings in
chrome.storage.local(enabled flag, histories, blocked domains). - Blocks navigation/requests to blacklisted domains using
webRequestandwebNavigation. - Receives status updates from the content script and maintains global/per‑tab click history.
- Initializes default settings in
- Popup (
src/popup/popup.html,src/popup/popup.js)- Toggle
Enabledstate and view per‑tab Activity with timing deltas. - Shows a loader indicator when automation appears active on the current tab.
- Toggle
- Options (
src/options/options.html)- Displays monitored sites (from
config.json), blocked domains (from storage), last action, and recent clicks.
- Displays monitored sites (from
- Edit
src/config/config.jsonto define sites and target buttons:
{
"sites": [
{
"match": "example.com",
"buttons": [
{ "key": "continue", "selector": "a.btn.btn-primary", "textMatch": ["continue"] }
]
}
]
}- Keys:
match: hostname to match (exact or subdomain, e.g.,foo.example.comor any*.example.com).buttons: list of button definitions.selector: CSS selector for the target element.textMatch(optional): array of substrings to match in the element’s text.
Note: Adding a site here is not sufficient by itself. Also add its domain to manifest.json → content_scripts[0].matches so the content script runs on that site.
storage,tabs,activeTabwebRequest,webRequestBlocking,webNavigationscriptinghost_permissions:<all_urls>(behavior governed by the content script’smatcheslist)
- Make changes in
src/…files, then openchrome://extensions/and clickReloadon the extension. - Use DevTools on target pages to inspect selectors and confirm button visibility/clickability.
- The popup and options pages include a lightweight “preview mode” for local viewing when extension APIs are unavailable.
- Add a site entry to
src/config/config.jsonwith the appropriate selectors. - Add the domain pattern to
manifest.json → content_scripts[0].matches. - Reload the extension and test on the target site.
- No clicks happen:
- Verify the site domain is listed under
manifest.json → content_scripts.matches. - Check that the
Enabledtoggle in the popup is on. - Confirm your selector matches a visible, clickable element.
- If the page shows human verification (e.g., reCAPTCHA), auto‑scroll will stop.
- Verify the site domain is listed under
- Unexpected navigation blocked:
- Review
blockedDomains(initialized in the background script and stored inchrome.storage.local). - Temporarily disable the extension to confirm whether blocking is the cause.
- Review
/src
background/background.js # Service worker, defaults, blocking, histories
content/content.js # DOM observation, click logic, auto‑scroll, status
config/config.json # Configurable site/button selectors
options/options.html # Options UI (read‑only display)
popup/popup.html # Popup UI
popup/popup.js # Popup logic (toggle + activity)
manifest.json # Manifest V3 configuration
- Data is stored locally via
chrome.storage.local(e.g., histories, settings). - No network requests are made to third‑party services besides fetching
config.jsonfrom the extension bundle and normal page activity.
1.0.0(seemanifest.json).