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
- [referer-parser]一个来路分析工具
- Chrome浏览器升级,第三方统计工具无法获取完整上游地址
- 建议开发者增加QQ登录绑定用户名
- 新浪SAE普通开发者认证求推荐
- Vite: 下一代前端工具
Nearby
- 上一篇 › 关于室内配送机器人
- 下一篇 › php 2.1版没有连接点击数的么