Browser Automation är en ny admin-only-funktion i Tools för att lagra och köra browserscript direkt från Tools.
För just den här Tools-integrationen är Playwright bättre lämpat eftersom det är enklare att anropa från Laravel/PHP, fungerar väl med Chrome/Chromium/Edge, stöder persistenta browserprofiler och ger ren screenshot-/artefakthantering.
Det gör det till en mer praktisk grund för inloggningstunga sajter som Facebook än att lägga in en större fristående TestCafe-projektstruktur i Tools.
Nuvarande implementation stöder:
storage/app/browser-automation/Tools admin:
/admin/browser-automationDär kan du:
Create/edit-sidan är nu också upplagd som ett mer guidat adminformulär:
https://example.com, loggar titeln, sparar en screenshot och returnerar strukturerad outputPlaywright-runnern ligger under automation/playwright och behöver sin Node-dependency installerad på servern:
cd automation/playwright
npm install
Om Chrome / Chromium / Edge inte hittas automatiskt på värden kan du sätta motsvarande server-env, till exempel BROWSER_AUTOMATION_CHROME_PATH.
Det lagrade scriptet körs inne i en async-funktion och får tillgång till:
pagecontextbrowserplaywrighthelpersinputNyttiga helpers är bland annat:
helpers.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')Kör ett lagrat script direkt:
php artisan browser-automation:run facebook-post
Schemalägg via DB-baserade jobb:
App\Jobs\Handlers\BrowserAutomationScheduledJobHandlerbrowser_automation.run:facebook-postDen vanliga Laravel-schedulern kör nu också jobs:run varje minut, så browserautomation kan köras automatiskt via en vanlig schedule:run-cron.
Om du vill verifiera att browserautomation verkligen fungerar innan du försöker med Facebook eller andra interaktiva sajter:
/admin/browser-automation/createexample-homechrome eller chromiumstart_url (eller input.url) till https://example.comawait 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(),
};
okexample-home.pngOm du vill automatisera flöden på Facebook eller liknande sajter:
Se alltid till att användningen följer målplattformens egna regler och din egen säkerhets-/driftpolicy.