使用 Chrome 引擎
在测试用例的入参中声明一个为 *web.Client
类型的参数,系统就会自动将 Chrome Headless 引擎注入该参数。
web.Client
使用了 chromedp 项目并使其使用更加方便。
web.Client
使用如下参数初始化了 Chrome Headless 引擎:
参数 | 描述 |
---|---|
–disable-gpu | 禁用 GPU 硬件加速 |
–no-default-browser-check | 禁用默认浏览器检查 |
–no-first-run | 跳过浏览器第一次运行的任务 |
–no-sandbox | 禁用沙箱 |
–headless | 使用 Headless 模式运行 |
–hide-scrollbars | 在截屏中隐藏滚动条 |
–mute-audio | 静音 |
浏览器窗口的大小可以在 Web 管理平台中调整,默认为 1920 * 1080。
代码示例
package main
import (
"github.com/l6p/utils/client/web"
"log"
"time"
)
func SimpleCase(client *web.Client, logger *log.Logger) error {
var example string
client.Go(`https://golang.org/pkg/time/`).
WaitVisible(`body > footer`).
Click(`#pkg-examples > div`).
Value(`#example_After .play .input textarea`, &example).
Do()
logger.Printf("Go's time.After example:\n%s", example)
time.Sleep(10 * time.Second)
return nil
}
func Export() map[string]interface{} {
return map[string]interface{}{
"SimpleCase": SimpleCase,
}
}