Skip to content

Latest commit

Β 

History

History

README.md

Snowboard RPA Chrome Extension

Built by: Yash Sharma (connect@yashsharma.ai) Organization: Yash, Yash_Personal_openSource Copyright: Β© 2025 Yash (Yash_Personal_openSource). All rights reserved.

Visual Web Element Recording

This Chrome extension enables visual web element recording for Snowboard RPA Studio. It highlights elements on hover and captures their CSS selectors when clicked.

Features

✨ Visual Highlighting - See exactly what element you're selecting with a blue border and tooltip 🎯 Smart Selector Generation - Automatically generates optimal CSS selectors (ID, name, class, xpath) πŸ”΄ Recording Indicator - Always know when recording is active πŸ’¬ Native Messaging - Communicates with Snowboard Studio in real-time ⚑ Fast & Lightweight - Minimal performance impact on web pages πŸ” Fixed Extension ID - Same ID on all systems (bnmmibpojeaadjmaijopfpcbokiblcbm) - no manual configuration!

Installation

Quick Install (Automated)

  1. Run the installer:

    .\install.ps1
  2. Follow the on-screen instructions to load the extension in Chrome

Manual Install

  1. Open Chrome and navigate to chrome://extensions/
  2. Enable "Developer mode" (toggle in top-right corner)
  3. Click "Load unpacked"
  4. Select this folder: C:\Users\yashs\Documents\SnowBoard\ChromeExtension
  5. βœ… Done! The extension has a fixed ID (bnmmibpojeaadjmaijopfpcbokiblcbm) that works on all systems

Note: The extension uses a cryptographic key to ensure the same Extension ID on every system. No manual configuration needed!

Usage

From Extension Popup

  1. Click the Snowboard extension icon in Chrome toolbar
  2. Click "πŸ”΄ Start Recording"
  3. Hover over elements on the page - they will highlight in blue
  4. Click elements to record them
  5. Click "⏹ Stop Recording" when done

From Snowboard Studio

  1. Open Snowboard Studio
  2. Click "Start Recording" button
  3. Switch to Chrome and interact with your web page
  4. Elements will be recorded automatically
  5. Click "Stop Recording" in Studio

How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Chrome Page    β”‚ ──────> β”‚  Content Script  β”‚ ──────> β”‚  Background.js   β”‚
β”‚  (Website)      β”‚         β”‚  (Highlighter)   β”‚         β”‚  (Event Handler) β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                    β”‚
                                                                    β”‚ Native
                                                                    β”‚ Messaging
                                                                    β–Ό
                                                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                          β”‚  Snowboard.      β”‚
                                                          β”‚  NativeMessaging β”‚
                                                          β”‚  (Bridge)        β”‚
                                                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                    β”‚
                                                                    β–Ό
                                                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                          β”‚  Snowboard       β”‚
                                                          β”‚  Studio          β”‚
                                                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Selector Priority

The extension generates selectors in this priority order:

  1. ID - #elementId (highest priority, most stable)
  2. Name attribute - input[name="username"]
  3. Class combinations - button.primary.submit
  4. Type attribute - input[type="email"]
  5. ARIA label - button[aria-label="Submit"]
  6. Data attributes - div[data-testid="login"]
  7. XPath with nth-child - div > form > button:nth-child(2)

File Structure

ChromeExtension/
β”œβ”€β”€ manifest.json           # Extension configuration
β”œβ”€β”€ content.js              # Page interaction & highlighting
β”œβ”€β”€ content.css             # Highlight styles
β”œβ”€β”€ background.js           # Event handling & native messaging
β”œβ”€β”€ popup.html              # Extension popup UI
β”œβ”€β”€ popup.js                # Popup logic
β”œβ”€β”€ icons/                  # Extension icons
β”œβ”€β”€ install.ps1             # Automated installer
β”œβ”€β”€ com.Yash.snowboard.recorder.json  # Native messaging manifest
└── README.md               # This file

Troubleshooting

Extension not highlighting elements

  • Make sure recording is started (red indicator should show)
  • Refresh the web page after starting recording
  • Check Chrome console for errors (F12 β†’ Console tab)

Native messaging not working

  • Verify the manifest path in Registry:
    HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.Yash.snowboard.recorder
    
  • Run .\setup-native-host.ps1 to register the native messaging host
  • The Extension ID is fixed: bnmmibpojeaadjmaijopfpcbokiblcbm (same on all systems)
  • Check logs at: %LOCALAPPDATA%\Snowboard\Logs\native-messaging.log

Elements not being recorded

  • Check that Snowboard Studio is running
  • Verify native messaging host is built: Snowboard.NativeMessaging.exe
  • Review extension console: right-click extension icon β†’ "Inspect popup"

Development

To modify the extension:

  1. Edit the source files
  2. Go to chrome://extensions/
  3. Click the reload icon for Snowboard RPA Recorder
  4. Test your changes

Security

  • βœ… All data stays local (no external communication)
  • βœ… Only active when explicitly recording
  • βœ… Requires user permission to access web pages
  • βœ… Native messaging uses stdio (secure channel)
  • βœ… Built with enterprise security in mind

License

Proprietary and Confidential Copyright Β© 2025 Yash (Yash_Personal_openSource). All rights reserved.

This software is the property of Yash (Yash_Personal_openSource) and is protected by copyright law. Unauthorized copying, distribution, modification, or use is strictly prohibited.


Author: Yash Sharma Title: Sr AI/ML Engineer Organization: Yash, Yash_Personal_openSource Email: connect@yashsharma.ai