Den här sidan är den fokuserade guiden för hur du faktiskt använder Playwright i Tools.
Om du vill ha den bredare översikten för hela funktionen finns fortfarande huvudguiden här:
Det finns tre huvudsätt att använda Playwright i det här projektet:
Använd detta när du vill:
Det här är rätt väg för t.ex.:
Använd detta när du vill:
Det här görs normalt via browserbot.sh, utom för det dedikerade Socdemo-playbackspåret som nu använder play/socdemo-play.sh som direkt runner.
Använd detta när du vill:
tests/e2eDetta hör ihop med den dedikerade adminytan för Playwright E2E och den vanliga Playwright-teststrukturen i projektroten.
Om du bara vill komma igång snabbt:
/admin/browser-automation/createexample-homechrome eller chromiumstart_urlExempelscript:
await page.goto(input.url || 'https://example.com', { waitUntil: 'domcontentloaded' });
helpers.log('Loaded page', await page.title());
await helpers.screenshot('example-home.png');
return {
title: await page.title(),
url: page.url(),
};
Adminytor:
/admin/browser-automation/admin/browser-automation/playwrightPå create/edit-sidan fyller du i:
facebook-postchrome, chromium eller edgeinputprofile_directorySätt en persistent profil när du vill:
Lämnar du fältet tomt använder Tools normalt scriptets key som standardnamn för sparad profil.
Använd headed mode när du:
Headless passar bättre för stabila redan förberedda körningar.
browserbot.shWrappern i projektroten är det snabbaste sättet att använda samma Playwright-upplägg från shell.
bash browserbot.sh --list
bash browserbot.sh --key facebook-post
bash browserbot.sh --name "Facebook post"
bash browserbot.sh --key facebook-post --profile facebook-admin
bash browserbot.sh --key facebook-post --headed
bash browserbot.sh --key facebook-post --fresh-profile
Det är rätt val när du inte vill återanvända sparad session.
Om du vill bygga upp ett flöde innan du sparar själva scriptet i databasen kan du spela in/codegena först.
bash browserbot.sh --record --key facebook-post --start-url https://www.facebook.com/
Detta är bra när du vill:
bash browserbot.sh --open --browser chrome --profile facebook-admin --start-url https://www.facebook.com/
Detta öppnar browsern utan att köra playback och utan att tvinga codegenflöde.
Det är rätt läge när du bara vill:
Om du redan har en bra basprofil kan du klona den till en ny profil i stället för att göra hela loginflödet igen.
bash browserbot.sh --clone-profile --copy-profile-from default --profile facebook-page-bot
bash browserbot.sh --open --profile facebook-page-bot --start-url https://www.facebook.com/
Detta är användbart när:
default redan innehåller dyr setup som login, cookies eller extension-konfigurationDitt lagrade script körs i en async-funktion och får tillgång till:
pagecontextbrowserplaywrighthelpersinputhelpers.log(...parts)await helpers.screenshot('shot.png')await helpers.saveText('note.txt', '...')await helpers.saveJson('state.json', value)helpers.setOutput(value)await helpers.delay(ms)helpers.getEnv('NAME')await page.goto(input.url || 'https://example.com', { waitUntil: 'domcontentloaded' });
helpers.log('Title', await page.title());
await helpers.screenshot('page.png');
helpers.setOutput({
title: await page.title(),
url: page.url(),
});
return { ok: true };
För projektets Playwright-tester används:
playwright.config.tstests/e2estorage/playwright/profiles/<name>storage/playwright/Öppna:
/admin/browser-automation/playwrightDär kan du:
base URLAlias i projektet:
npm run test:e2e:codegen
Persistent helper:
bash bin/playwright-record-persistent.sh
Mot extern miljö:
PLAYWRIGHT_SKIP_WEBSERVER=true PLAYWRIGHT_BASE_URL=https://tools.tornevall.net bash bin/playwright-record-persistent.sh
cd automation/playwright
npm install
sudo bash bin/install-browserbot-stack.sh
Den installern är nu den kanoniska host-side-entrypointen för den här stacken. I sin nuvarande form installerar den Node via NodeSource, filtrerade Linux-beroenden för browsern, Xvfb, Playwright-paketet och en projektspecifik Playwright-Chromium-cache under storage/app/browser-automation/playwright-browsers.
Viktiga detaljer i den aktuella runtime-uppdelningen:
browserbot.sh är fortfarande den generella shell-wrappern för lagrade script, --open, --record, profilkloning och export/import av profilseeds.play/socdemo-play.sh är nu den särskilda direktrunnern för SocialGPT:s Socdemo-playbackflöde./usr/bin/chromium-browser, och använder bara Chrome när du uttryckligen begär det.SOCDEMO_DISPLAY_MODE=headless är avsiktligt blockerat för just den extension-tunga Socdemo-playbackvägen; den stödda servermodellen är fortfarande en headed browser inne i Xvfb.sudo bash bin/install-browserbot-stack.sh
input enkel och läsbarBörja med att kontrollera:
start_urlprofile_directory--fresh-profile när du egentligen vill återanvända sessionenOm du vill bygga något lite mer verkligt utan att börja för stort:
--open eller --record