go自动化测试(微软 Playwright)
端到端的 市场测试框架:
CasperJS — 6460 个 star,官网,代码,最近更新于 7 天前;
Protractor — 6408 个 star,官网,代码,最近更新于 10 天前;
Nightwatch.js — 6121 个 star,官网,代码,最近更新于 6 天前;
TestCafe — 2268 个 star,官网,代码,最近更新于 1 天前;
CodeceptJS — 1087 个 star,官网,代码,最近更新于 7 天前;
很多同学很关心 和 selenium ,jest 就一点 “ Playwright微软拥抱了”
Playwright
Playwright是一个使用单个API实现Chromium、Firefox和WebKit自动化的Go库。
Playwright旨在实现常绿、功能强大、可靠和快速的“跨浏览器网络自动化”
Playwright学习(官方教程)
package main
import (
"fmt"
"log"
"github.com/playwright-community/playwright-go"
)
func main() {
//步骤1:检查环境
pw, err := playwright.Run()
if err != nil {
log.Fatalf("could not start playwright: %v", err)
}
//步骤2:启动浏览器launch
browser, err := pw.Chromium.Launch()
if err != nil {
log.Fatalf("could not launch browser: %v", err)
}
//步骤3:启动一个page
page, err := browser.NewPage()
if err != nil {
log.Fatalf("could not create page: %v", err)
}
//步骤4:企图打开一个http地址
if _, err = page.Goto("https://news.ycombinator.com"); err != nil {
log.Fatalf("could not goto: %v", err)
}
//步骤5:获取定位元素
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: %s\n", i+1, title)
}
//步骤6:检查浏览器
if err = browser.Close(); err != nil {
log.Fatalf("could not close browser: %v", err)
}
//步骤7:结束操作/执行
if err = pw.Stop(); err != nil {
log.Fatalf("could not stop Playwright: %v", err)
}
}
//执行结果:(网络超时了-自行调整一下本地执行)

安装&&安装环境依赖
go get github.com/playwright-community/playwright-go
go run github.com/playwright-community/playwright-go/cmd/playwright install --with-deps
文章为作者独立观点,不代表BOSS直聘立场。未经账号授权,禁止随意转载。