Test an extension
Provide the path to an unpacked extension, and your coding agent loads it when the browser starts.
/shiplight verify my Chrome extension at ./my-extension works —
open https://example.com and check that the extension
injected its UI into the page.Your agent starts Chromium in headed mode with the extension loaded. It can inspect and interact with content scripts, banners, sidebars, and other changes the extension makes to the DOM.
Use a persistent Chrome profile when you need to test the extension in an authenticated session:
/shiplight verify my extension at ./my-extension works on the dashboard —
use the Chrome profile at ./my-chrome-profile and open
https://app.example.com/dashboardReview the evidence
You receive screenshots and a summary of the extension's effects on the page. Page screenshots do not capture the Chrome toolbar or its icons. Verify page integrations through changes to the DOM, console output, network requests, or storage state.
For an extension with a toolbar action popup, Shiplight can open the real popup and expose it as a Playwright Page. This lets a test click buttons, fill fields, and assert popup content even though Playwright does not include action popups in context.pages().
Use the extension in YAML tests
Generated YAML does not automatically retain the extension used during an interactive session. To load the extension when the test runs, add extensionDir to the test's use: block:
goal: Start recording from the extension popup
use:
extensionDir: ./my-extension
statements:
- description: Start recording from the real Chrome action popup
js: |
await extensionActionPopup
.getByRole('button', { name: 'Start recording' })
.click();For all extension fixture options and launch configuration, see Chrome Extension Testing in the Fixtures reference.