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.
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 steps