...
1
2
3
4 package main
5
6 import (
7 "fmt"
8 "log"
9
10 "github.com/playwright-community/playwright-go"
11 )
12
13 func main() {
14 pw, err := playwright.Run()
15 if err != nil {
16 log.Fatalf("could not launch playwright: %v", err)
17 }
18 browser, err := pw.Chromium.Launch()
19 if err != nil {
20 log.Fatalf("could not launch Chromium: %v", err)
21 }
22 page, err := browser.NewPage(playwright.BrowserNewContextOptions{
23 RecordVideo: &playwright.BrowserNewContextOptionsRecordVideo{
24 Dir: playwright.String("videos/"),
25 },
26 })
27 if err != nil {
28 log.Fatalf("could not create page: %v", err)
29 }
30 gotoPage := func(url string) {
31 fmt.Printf("Visiting %s\n", url)
32 if _, err = page.Goto(url); err != nil {
33 log.Fatalf("could not goto: %v", err)
34 }
35 fmt.Printf("Visited %s\n", url)
36 }
37 gotoPage("http://whatsmyuseragent.org")
38 gotoPage("https://github.com")
39 gotoPage("https://microsoft.com")
40 if err := page.Close(); err != nil {
41 log.Fatalf("failed to close page: %v", err)
42 }
43 path, err := page.Video().Path()
44 if err != nil {
45 log.Fatalf("failed to get video path: %v", err)
46 }
47 fmt.Printf("Saved to %s\n", path)
48 if err = browser.Close(); err != nil {
49 log.Fatalf("could not close browser: %v", err)
50 }
51 if err = pw.Stop(); err != nil {
52 log.Fatalf("could not stop Playwright: %v", err)
53 }
54 }
55
View as plain text