Getting started
From a fresh account to a Playwright test running in your own CI, in about ten minutes.
Before you start
- A PlayForge account. Sign up free. Signing up creates your organization, with you as its Admin; colleagues join it by invitation.
- Chrome, Edge, Brave, Arc or another Chromium browser. Firefox and Safari aren't supported.
- A site you're allowed to test. It can be public, on
localhost, on your intranet or behind a sign-in.
The dashboard's Get started checklist follows these same steps and ticks each one off as you go.
1. Install the extension
The PlayForge Recorder extension records in a tab of your own browser and runs your tests there, on your network and with your sign-ins.
- Open PlayForge Recorder in the Chrome Web Store (the dashboard's Add to Chrome button goes there too) and click Add to Chrome.
- Reload the dashboard. The dot next to the extension turns green and shows its version.
Can't install from the Chrome Web Store?
- Download PlayForge and unzip the file.
- Open
chrome://extensionsand turn on Developer mode (top right). - Click Load unpacked and choose the
extensionfolder from the download. - Reload the dashboard.
An extension loaded this way doesn't update itself: download it again when the dashboard asks for a newer version.
Chrome updates the extension on its own. If the dashboard shows a banner asking for a newer version before that happens, open chrome://extensions, turn on Developer mode and click Update, then reload the dashboard.
2. Create a project
A project is the site or app you're testing. Go to Projects and click New project, then give it a name and the site's address, for example https://app.yourcompany.io. A description and repository are optional.
3. Record a flow
- Click Start recording. Choose the project and check the Application URL; it's where the test will start, so you can point it at a deeper page.
- Click Start recording in the dialog. A new tab opens on that address.
- Use the site as you normally would: click, type, choose options, open menus. Each action appears in the dashboard's Timeline as you go, and the site's API calls appear under Network.
- When the flow is done, click Stop Recording in the dashboard.
Tips for a good recording
- One flow per recording. “Add a phone to the cart” makes a better test than a whole afternoon of clicking. Short tests are easier to read and to repair.
- Do it the way a user would. Click the field before you type, and wait for each page to show before you move on. You don't need to rush or pause; the test waits for what it needs on its own.
- Signing in. If you start already signed in, the test assumes you're signed in, which is fine when it runs in your browser. If it will run in CI, either record the sign-in as part of the flow or set up sign-in in your Playwright project (see Export).
- Passwords are safe. Password fields and fields that look like secrets are masked before anything leaves your browser.
4. Add checks
Clicks alone only prove that nothing crashed. Checks prove the right thing happened. Add them while you record:
- Click Assertion Mode: OFF in the dashboard to turn it on.
- In the recording tab, click the thing that proves the step worked: a confirmation message, a cart count, a heading. That click isn't recorded as a click.
- PlayForge adds a check that the element shows that text, or that it's visible when it has no text. You'll see it under Assertions.
- Turn Assertion Mode off and carry on.
The AI also checks the outcome of each step on its own, such as the page a click leads to or the value a field holds. Your own checks are always kept.
Values that come from your API
When a value you clicked, typed or checked also appears in the site's API responses, it's listed in the Data tab. Choose how the test uses it:
| Choice | The test… | Use it for |
|---|---|---|
| Pinned | always uses the exact value you recorded, and fails if it disappears | a specific product, account or record that should always exist |
| From API | reads the value from the API on every run, for example the first item the page shows | catalogues, search results and lists that change |
5. Generate the test
After you stop recording, click Generate Test. The AI turns the recording into a test plan, and PlayForge writes a standard Playwright .spec.ts from it, with getByRole, getByLabel and getByText locators and no fixed waits.
If generation fails, your recording is kept. Click Generate Test again.
6. Run and repair
- Open the test (the dashboard takes you there after generating, or find it under Generated) and click Run Test.
- If the test types a password or another secret, PlayForge asks you for it. It's used for that run only and never saved.
- A new tab opens and the test runs there with real mouse and keyboard input. Watch it, or carry on with something else.
If a step fails, the AI reads the error together with your recording, fixes the test and runs it again, up to three times. The code on the page updates with each repair. When a failure looks like a real problem in your app, such as data that's gone or a page that errors, it's reported instead of hidden.
The Execution logs show each step, how long it took, and the exact reason for any failure.
7. Export and run in CI
The test is yours. Go to Export and click Download (or Copy code). Nothing in the file depends on PlayForge.
Run it locally
In a project that already uses Playwright, put the file in your tests/ folder. If you don't have one yet, create one first:
npm init playwright@latest
# put the downloaded .spec.ts in tests/, then:
npx playwright test
Secrets
Recorded passwords become environment variables in the code, for example process.env.TEST_PASSWORD. Set them before running:
TEST_PASSWORD='your password' npx playwright test # macOS, Linux
$env:TEST_PASSWORD='your password'; npx playwright test # Windows PowerShell
GitHub Actions
Add the secret under your repository's Settings → Secrets and variables → Actions, then save this as .github/workflows/playwright.yml:
name: Playwright tests
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npx playwright install --with-deps chromium
- run: npx playwright test
env:
TEST_PASSWORD: ${{ secrets.TEST_PASSWORD }}
localhost or your intranet unless your runners can. If you recorded while signed in, add sign-in to the test or use Playwright's authentication setup.PlayForge Runner
For computers where Chrome extensions are blocked. The Runner is a small program that opens its own Chromium window with the PlayForge extension already inside, so recording and running work exactly the same way. It needs Node.js 18 or newer and git.
git clone https://github.com/Ramraju997/Playwright_Automation_App.git
cd Playwright_Automation_App/runner
npm install
- In the dashboard, open Settings → PlayForge Runner and click Get my start command.
- Run the command it shows in that folder. The Settings card turns green when the Runner is connected.
- Keep the terminal open while you use PlayForge. Next time, just run
npm start.
Sign-ins you make in the Runner's window are remembered for next time. When the extension is installed in your browser, PlayForge uses the extension; otherwise it uses your Runner. To update, run git pull in that folder and restart it.
Team and roles
Go to Team, enter a colleague's e-mail, pick a role and click Send invite. They get a link to join your organization and see the same projects and tests.
| Admin | Everything, including the team, roles and AI cost per test |
|---|---|
| Developer | Create projects, record, generate, run and export tests |
| Viewer | Look at projects, sessions and tests, and export them |
What gets recorded
Everything a user does with the mouse and keyboard, written as the matching Playwright call:
| You… | The test… |
|---|---|
| click, double-click, right-click or middle-click | click(), dblclick(), click({ button: 'right' }) |
| Ctrl/Cmd-click or Shift-click, to select several items | click({ modifiers: ['ControlOrMeta'] }), which works on Windows, Linux and Mac |
| hover to open a menu | hover(), then clicks the item |
| drag and drop | dragTo() |
| type into a field | fill() with what the field holds at the end, not every keystroke |
| choose from a list, tick a box, pick a styled radio button | selectOption(), check(), or a click on its label |
| press Enter, Escape, Tab, arrows, Home/End, Page Up/Down, F1–F12 or a shortcut such as Ctrl+K | press() |
| click a link that opens a new tab | waits for the new tab and carries on there |
| trigger an API call | waits for its response instead of a fixed delay |
Only the tab you started recording in is recorded, and only until you stop.
Troubleshooting
The dashboard says to install the extension, but I already did
Reload the dashboard page. Check that the extension is turned on at chrome://extensions and that you're using the dashboard in the same browser and profile.
A banner says my extension is out of date
Open chrome://extensions, turn on Developer mode and click Update. If you loaded it unpacked, download it again and click the reload icon on PlayForge Recorder. Then reload the dashboard. Older versions can't run some newer tests.
“Recording ended: the browser could not open or keep the page”
Check the Application URL, and that the site opens in a normal tab. Closing the recording tab also ends the recording.
“Could not generate the test”
Your recording is kept. Click Generate Test again. If it keeps failing, write to us with the time it happened.
The test still fails after three repairs
Open the execution logs: the last line says which step failed and why. If your app changed since you recorded, record the flow again. If it looks like PlayForge got it wrong, send us the log; every fix we make is added to our regression tests so it stays fixed.
The exported test passes in PlayForge but fails in CI
Usually the CI machine isn't signed in, can't reach the site, or is missing a secret's environment variable. See Export and run in CI.
Still stuck? Write to eramrajurr@gmail.com with the page you were on and what you saw.