-
-
Notifications
You must be signed in to change notification settings - Fork 683
/
Copy pathplaywrightTask.ts
47 lines (40 loc) · 1.48 KB
/
playwrightTask.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import { logger, task } from "@trigger.dev/sdk/v3";
import { chromium } from "playwright";
/**
* Example task demonstrating Playwright browser automation with Trigger.dev
*
* To use other browsers (firefox, webkit):
* 1. Import them from playwright: `import { chromium, firefox, webkit } from "playwright";`
* 2. Add them to the browserType array: `for (const browserType of [chromium, firefox, webkit])`
* 3. Configure the playwright extension in your project:
* ```
* // In your build configuration
* import { playwright } from "@trigger.dev/core/v3/build";
*
* extensions: [
* playwright({ browsers: ["chromium", "firefox", "webkit"] })
* ]
* ```
*/
export const playwrightTestTask = task({
id: "playwright-test",
retry: {
maxAttempts: 1,
},
run: async () => {
logger.log("Starting Playwright automation task");
for (const browserType of [chromium]) {
const prefix = (msg: string) => `[${browserType.name()}]: ${msg}`;
const browser = await browserType.launch();
logger.log(prefix("Browser launched"));
const page = await browser.newPage();
logger.log(prefix("New page created"));
await page.goto("https://google.com");
logger.log(prefix("Navigated to google.com"));
const screenshot = await page.screenshot({ path: "screenshot.png" });
logger.log(prefix("Screenshot taken"), { size: screenshot.byteLength });
await browser.close();
logger.log(prefix("Browser closed"));
}
},
});