This skill provides tools and techniques for e-commerce website automation. Includes advanced search, product comparison, cart management, checkout process and other common shopping scenarios. Suitable for tasks requiring complex operations on e-commerce websites.
npx skills add https://github.com/MassLab-SII/open-agent-skills --skill shopping-browser-automation
This skill is based on Playwright MCP tools, providing automation capabilities for e-commerce websites.
In shopping website automation, we distinguish two types of operations:
utils.py, used for atomic operations.File: simple_search.py
Use Cases:
Prerequisites:
navigate() to navigate to the website homepageUsage:
# Usage:
# python simple_search.py <search_term> <search_input_ref>
# Example:
python simple_search.py "gingerbread" e35
File: advanced_search_by_name.py
Use Cases:
Prerequisites:
navigate() to navigate to the website homepageclick() to click the "Advanced Search" linkTypical Task Examples:
Usage:
# Usage:
# python advanced_search_by_name.py <product_name> <price_from> <price_to> <name_ref> <price_from_ref> <price_to_ref> <search_btn_ref>
# Example:
python advanced_search_by_name.py "Ginger" 50.00 100.00 e91 e110 e114 e118
File: advanced_search_by_description.py
Use Cases:
Prerequisites:
navigate() to navigate to the website homepageclick() to click the "Advanced Search" linkTypical Task Examples:
Usage:
# Usage:
# python advanced_search_by_description.py <description> <price_from> <price_to> <desc_ref> <price_from_ref> <price_to_ref> <search_btn_ref>
# Example:
python advanced_search_by_description.py "vitamin" 0.00 99.99 e99 e110 e114 e118
File: fill_shipping_info.py
Use Cases:
Typical Task Examples:
Prerequisites:
click() to click the "Proceed to Checkout" buttonsnapshot() to get all form field ref valuesUsage:
# Usage:
# python fill_shipping_info.py <email> <first_name> <last_name> <street> <country> <state> <city> <zipcode> <phone> <email_ref> <fname_ref> <lname_ref> <street_ref> <country_ref> <state_ref> <city_ref> <zip_ref> <phone_ref>
# Example:
python fill_shipping_info.py [email protected] Alice Johnson "456 Oak Avenue" "United States" California "San Francisco" 94102 415-555-0123 e33 e46 e51 e65 e75 e80 e85 e90 e95
Below are the basic tool functions provided in utils.py and their use cases. These are atomic operations for flexible combination.
Note: Basic tools need to be used in async context. Can be simplified using run_browser_ops.py. Code should be written without line breaks.
# Standard format (browser persists across calls)
python run_browser_ops.py -c "await browser.navigate('http://localhost:7770')"
navigate(url: str)Use Cases:
Example:
python run_browser_ops.py -c "await browser.navigate('http://localhost:7770')"
navigate_back()Use Cases:
Example:
python run_browser_ops.py -c "await browser.navigate_back()"
click(ref: str, element: Optional[str] = None)Use Cases (very broad):
Example:
python run_browser_ops.py -c "await browser.click(ref='e56', element='Health & Household menu item')"
type_text(ref: str, text: str, element: Optional[str] = None)Use Cases:
Example:
# Enter in search box
python run_browser_ops.py -c "await browser.type_text(ref='e32', text='gingerbread', element='Search input')"
# Press Enter to submit
python run_browser_ops.py -c "await browser.press_key('Enter')"
fill_form(fields: List[Dict[str, str]])Use Cases:
Example:
# Fill advanced search form
python run_browser_ops.py -c "await browser.fill_form(fields=[{'name': 'Product Name', 'ref': 'e111', 'value': 'cookie'}, {'name': 'Price From', 'ref': 'e134', 'value': '20.00'}, {'name': 'Price To', 'ref': 'e138', 'value': '40.00'}])"
# Update cart quantity
python run_browser_ops.py -c "await browser.fill_form(fields=[{'name': 'Qty', 'ref': 'e141', 'value': '3'}])"
select_option(ref: str, element_desc: str, value: str)Use Cases:
Example:
# Sort by price
python run_browser_ops.py -c "await browser.select_option(ref='e114', element_desc='Sort By dropdown', value='Price')"
# Select product flavor
python run_browser_ops.py -c "await browser.select_option(ref='e128', element_desc='Flavor', value='Peanut Butter')"
press_key(key: str)Use Cases:
Example:
# Press Enter after typing in search box
python run_browser_ops.py -c "await browser.press_key('Enter')"
snapshot()Use Cases (very important):
Example:
python run_browser_ops.py -c "await browser.snapshot()"
Best Practices:
get_console_messages()Use Cases:
get_network_requests()Use Cases:
wait_for_time(seconds: int)Use Cases:
Example:
python run_browser_ops.py -c "await browser.wait_for_time(3)"
list_tabs()Use Cases:
tab_new(url: Optional[str] = None)Use Cases:
Example:
python run_browser_ops.py -c "await browser.tab_new(url='http://localhost:7770/product-page.html')"
Use snapshot() in the following situations:
snapshot() to understand page state: confirm state before and after critical stepsToolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
Use this skill to query your Google NotebookLM notebooks directly from Claude Code for source-grounded, citation-backed answers from Gemini. Browser automation, library management, persistent auth. Drastically reduced hallucinations through document-only responses.
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.
Automate Anchor Browser tasks via Rube MCP (Composio). Always search tools first for current schemas.
Automate Browser Tool tasks via Rube MCP (Composio). Always search tools first for current schemas.
Get Image [from] Internet Link - Zero-setup CLI for downloading full-resolution images from iCloud, Dropbox, Google Photos, and Google Drive share links. Four-tier capture strategy, browser automation, HEIC conversion, album support. Node.js/Playwright.
Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization strategies, and Chrome Web Store publishing. Use when: browser extension, chrome extension, firefox addon, extension, manifest v3.
Take masslab-sii/shopping-browser-automation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.