chromedp: 纯go 驱动Chrome 开发者工具
chromedp 这个库比较有趣,相对selenium BrowerDriver 来说,该库不依赖Selenium、PhantomJS 等第三方库,通过Chrome 开发者工具接口实现一些操作,如下图功能:
下面是填写表单登录的例子:
package main
import (
"context"
"log"
"time"
"github.com/chromedp/chromedp"
)
func main() {
var err error
// create context
ctxt, cancel := context.WithCancel(context.Background())
defer cancel()
// create chrome instance
c, err := chromedp.New(ctxt, chromedp.WithLog(log.Printf))
if err != nil {
log.Fatal(err)
}
// run task list
err = c.Run(ctxt, click())
if err != nil {
log.Fatal(err)
}
// shutdown chrome
err = c.Shutdown(ctxt)
if err != nil {
log.Fatal(err)
}
// wait for chrome to finish
err = c.Wait()
if err != nil {
log.Fatal(err)
}
}
func click() chromedp.Tasks {
return chromedp.Tasks{
chromedp.Navigate(`https://www.youbbs.org/login`),
chromedp.WaitVisible(`div.footer-wrap`),
chromedp.SetValue(`#name`, "yourname", chromedp.ByID),
chromedp.SetValue(`#password`, "yourpw", chromedp.ByID),
chromedp.Click(`#submit`, chromedp.NodeVisible),
chromedp.Sleep(150 * time.Second),
}
}
0
See Also
Nearby
- 上一篇 › 关于室内配送机器人
- 下一篇 › php 2.1版没有连接点击数的么