package main import ( "fmt" "log" "github.com/playwright-community/playwright-go" ) func main() { if err := playwright.Install(); err != nil { log.Fatalf("playwright.Install: %v", err) } pw, err := playwright.Run() if err != nil { panic(err) } defer pw.Stop() browser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{ Headless: playwright.Bool(false), }) if err != nil { log.Printf("fail to open browser") return } defer browser.Close() context, err := browser.NewContext() if err != nil { log.Fatalf("fail to create Context: %v", err) } defer context.Close() page, err := context.NewPage() if err != nil { log.Fatalf("fail to open page: %v", err) } defer page.Close() if _, err := page.Goto("https://www.baidu.com", playwright.PageGotoOptions{ WaitUntil: playwright.WaitUntilStateLoad, }); err != nil { log.Fatalf("fail to open website: %v", err) } searchBox := page.Locator("input[id=kw]") if err := searchBox.Fill("playwright golang"); err != nil { log.Fatalf("input: %v", err) } searchButton := page.Locator("input[id=su]") if err := searchButton.Click(); err != nil { log.Fatalf("click: %v", err) } //等待页面加载 page.WaitForEvent("load") firstResult := page.Locator("h3").First() title, err := firstResult.TextContent() if err != nil { log.Fatalf("page Locator: %v", err) } fmt.Println(title) }