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)
	}
}

//执行结果:(网络超时了-自行调整一下本地执行)

image.png

安装&&安装环境依赖

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