Как запустить Playwright for Go с помощью локального браузера Chrome

Когда Playwright запускается с настройками по умолчанию, устанавливается отдельный браузер для использования с Playwright (например, Chromium), и процесс выполняется с помощью этого браузера.

Если вы хотите запустить Playwright из Chrome, уже установленного на вашей локальной машине, вы можете пропустить установку и обратиться к Chrome на вашей локальной машине для запуска процесса.

Ниже приведен пример кода для достижения этой цели.
(Большая часть приведенного ниже кода основана на примере в README 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: %sn", 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)
    }
}
Вход в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий