首页 > 解决方案 > 如何以编程方式单击网站上的按钮

问题描述

我知道在一些不同的代码中是这样的await page.click,但我不知道如何在go. 我正在尝试创建一个完全自动化的结帐脚本。这是我到目前为止所拥有的,它只是打开了网站

package main

import (
    "log"
    "os/exec"
)

func main() {

    err := exec.Command("cmd", "/C", "start", "chrome.exe", "https://www.bestbuy.com/site/pny-geforce-gt1030-2gb-pci-e-3-0-graphics-card-black/5901353.p?skuId=5901353gi").Run()
    if err != nil {
        log.Println(err)

    }

标签: htmlgobuttonclickelement

解决方案


你可能想检查https://github.com/chromedp/chromedp包来控制 Chrome DevTool。

更多示例

package main

import (
    "context"
    "log"
    "time"

    "github.com/chromedp/chromedp"
)

func main() {
    // create chrome instance
    ctx, cancel := chromedp.NewContext(
        context.Background(),
        chromedp.WithLogf(log.Printf),
    )
    defer cancel()

    // create a timeout
    ctx, cancel = context.WithTimeout(ctx, 15*time.Second)
    defer cancel()

    // navigate to a page, wait for an element, click
    var example string
    err := chromedp.Run(ctx,
        chromedp.Navigate(`https://golang.org/pkg/time/`),
        // wait for footer element is visible (ie, page is loaded)
        chromedp.WaitVisible(`body > footer`),
        // find and click "Expand All" link
        chromedp.Click(`#pkg-examples > div`, chromedp.NodeVisible),
        // retrieve the value of the textarea
        chromedp.Value(`#example_After .play .input textarea`, &example),
    )
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Go's time.After example:\n%s", example)
}

推荐阅读