로컬 Chrome을 사용하여 Playwright for Go를 실행하는 방법
9161 단어 goplaywright
로컬 시스템에 이미 설치된 Chrome에서 Playwright를 실행하려면 설치를 건너뛰고 로컬 시스템에서 Chrome을 참조하여 프로세스를 실행할 수 있습니다.
다음은 이를 달성하기 위한 샘플 코드입니다.
(아래 코드의 대부분은 README of Playwright for Go 의 샘플을 기반으로 합니다.)
package main
import (
"fmt"
"log"
"github.com/playwright-community/playwright-go"
)
func main() {
runOption := &playwright.RunOptions{
SkipInstallBrowsers: true,
}
// Perform the installation of Playwright's Driver here.
// Note that this process can be skipped the second time or later because the Driver is already installed.
err := playwright.Install(runOption)
if err != nil {
log.Fatalf("could not install playwright dependencies: %v", err)
}
pw, err := playwright.Run()
if err != nil {
log.Fatalf("could not start playwright: %v", err)
}
option := playwright.BrowserTypeLaunchOptions{
Channel: playwright.String("chrome"),
}
browser, err := pw.Chromium.Launch(option)
if err != nil {
log.Fatalf("could not launch browser: %v", err)
}
page, err := browser.NewPage()
if err != nil {
log.Fatalf("could not create page: %v", err)
}
if _, err = page.Goto("https://news.ycombinator.com"); err != nil {
log.Fatalf("could not goto: %v", err)
}
entries, err := page.QuerySelectorAll(".athing")
if err != nil {
log.Fatalf("could not get entries: %v", err)
}
for i, entry := range entries {
titleElement, err := entry.QuerySelector("td.title > a")
if err != nil {
log.Fatalf("could not get title element: %v", err)
}
title, err := titleElement.TextContent()
if err != nil {
log.Fatalf("could not get text content: %v", err)
}
fmt.Printf("%d: %s\n", i+1, title)
}
if err = browser.Close(); err != nil {
log.Fatalf("could not close browser: %v", err)
}
if err = pw.Stop(); err != nil {
log.Fatalf("could not stop Playwright: %v", err)
}
}
Reference
이 문제에 관하여(로컬 Chrome을 사용하여 Playwright for Go를 실행하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/shinshin86/how-to-run-playwright-for-go-using-local-chrome-2inb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)