Skip to content

About

Chrome extension for extracting dropdown options into the clipboard

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

141 Commits

Folders and files

Repository files navigation

Dropdown Extractor (Chrome Extension)

Dropdown Extractor is a Chrome extension that copies items from dropdown lists into your clipboard.

It supports many popular types of dropdowns. Go to any website and try it on any supported dropdown. You can also try it on our test page: Dropdown Playground

How it works

  1. Click the extension icon → extractor becomes armed
  2. Open a dropdown on the page
  3. Click one of its options (not needed for native <select> dropdowns)
  4. All dropdown items are copied to the clipboard

The extractor automatically expires after a short timeout if no dropdown items are extracted.

What gets extracted

You can choose what to copy via Extension Options:

  • Item text — what you see on screen
  • Item value — the underlying value
  • Both — copied using a configurable format (tab, space, dash, etc.)

Safe capture

If enabled in Extension Options, Safe capture prevents option clicks from triggering actions while extracting. This lets you copy dropdown items without selecting an option. Safe capture does not apply to native <select> dropdowns.

Debug mode

Debug mode is intended for troubleshooting, and has two modes:

  • supported dropdowns — for debugging
  • any two elements — for inspecting unsupported dropdowns for potentially adding support

In debug mode, extension copies raw HTML to your clipboard so you can inspect the menu structure.

Extension Options

To open Extension Options, right-click the extension button and select Options.

Dropdown types

Dropdown type Supported
Native <select> Yes
ARIA listbox (role="listbox") Yes
Selectize Yes
React Select Yes
React Select (Atlassian) Yes
Downshift Yes
MUI Autocomplete Yes
Radix menu Yes
Dropbox-style menu Yes
Ant Design Select Yes
Select2 Yes
Chosen Yes
GitHub SelectMenu Yes
AliExpress search suggestions Yes
Google Search suggestions Yes
Expedia search suggestions Yes
Canvas-rendered / virtualized No
Cross-origin iframes No

Notes / Limitations

  • Support depends on the dropdown exposing recognizable DOM/ARIA patterns. Custom implementations, virtualized or canvas-rendered menus, Shadow DOM, or cross-origin iframes may not be detectable.
    • includes support for Google Search suggestions
  • AntD/Select2/Chosen support depends on their default DOM structure; customized themes may not be detectable.
  • Radix menus are detected via role="menu".
  • Radix menu items often omit value/data-value; href is used as a fallback value when present.
  • Dropbox-style menus can close on mousedown; Safe capture keeps them open while extracting.
  • GitHub SelectMenu items use checkbox values as the extracted value.
  • AliExpress search suggestions use href as value; value/data-value are ignored.
  • Expedia search suggestions expose text via aria-label; value/data-value are not provided.
  • MUI options don’t expose value properties on DOM nodes; use data-value if available.
  • Safe capture does not apply to native <select> dropdowns.
  • Right-click (context menu) cannot be used with Selectize dropdowns because they close immediately on right-mouse events. That’s why right-click wasn’t implemented.

How to Install

Public version

Install public version from Chrome Web Store:Dropdown Extractor extension in Chrome Web StoreDropdown Extractor.

The Web Store listing may lag behind the latest code due to review time.

Development mode

Follow these steps to load the unpacked extension in Chrome:

  1. Clone or download this repository
  2. Open Chrome and go to: chrome://extensions
  3. Enable Developer mode (top right)
  4. Click Load unpacked
  5. Select the project folder
  6. Pin the extension (optional)

Packaging for Chrome Web Store

Use these commands to build uploadable zip archives:

  • To create a ZIP for upload: npm run package

  • This runs a clean step and generates dist/dropdown-extractor-<version>.zip.

  • To bump the patch version and package in one step: npm run package:patch

  • After uploading, record the exact submitted commit and ZIP: npm run release:submit

  • After that version is live, record publication: npm run release:record -- <version>

Dropdown Playground

To test the extension, you can use Dropdown Playground. It lets you:

  • pick a dropdown type and value source
  • generate items (text/value/data-value) and mark missing fields
  • render a mock dropdown and extract from it
  • copy a snapshot (text/JSON) to easily share a repro setup

Engineering and QA process

Dropdown Extractor uses a documented quality workflow from bug report through production verification:

  • Testing strategy: Playwright tests exercise the real unpacked extension, while independent playground contracts validate the fixtures those tests depend on. See the automated testing guide for setup, local commands, coverage matrices, reports, traces, and instructions for adding coverage.
  • Bug lifecycle: Reports move through reproduction, severity classification, regression coverage, release tracking, and live verification. Use the repository's Bug report form and follow the bug reporting process. Debug HTML may contain private page data; sanitize it before sharing.
  • CI and deployment: GitHub Actions runs unit and browser tests before eligible playground changes are deployed to Netlify. The deployment guide documents ownership, safeguards, and recovery.
  • Release traceability: Submission and publication tags connect each Chrome Web Store release to its exact source commit and uploaded ZIP checksum. See the Chrome Web Store release workflow.

Repository-wide change and verification practices are summarized in the contribution and maintenance guide.

License

MIT. See LICENSE.

About

Chrome extension for extracting dropdown options into the clipboard

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages