工具介绍
Playwright是微软公司开发的一款非常强大的开源自动化测试工具。之所以强大有以下原因:
-
支持所有主流浏览器:Chrome、Firefox、Safari、MS Edge。
-
支持无头模式和有头模式运行。
-
提供同步、异步的API,可以结合Pytest使用。
-
支持浏览器端的自动化脚本录制。
-
针对Python语言的自动化工具。
-
支持的操作系统有Linux、Mac OS以及Windows。
-
可以使用docker进行运行环境的安装。
安装环境
-
安装Python,Playwright需要3.7及以上版本的Python,因此至少要安装Python3.7以上的版本(最好用3.7,我试了下3.8有兼容问题)。
-
到https://github.com/microsoft/playwright-python去下载项目代码,主要是那个local_requirements.txt。
-
使用pip3 install playwright==1.8.0a1(这里最好指定版本)。
-
使用 pip3 install -r local_requirements.txt安装所有的依赖包。
-
使用python3 -m playwright install 安装浏览器驱动模块(用清华的镜像)。
这里在命令窗口运行:pip3 -v config list查看系统中的pip.ini文件,下面这个是我的。
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
#index-url=http://mirrors.aliyun.com/pypi/simple/
#[install]
#trusted-host=mirrors.aliyun.com
这里需要注释掉aliyun,最好在白天或早上安装这个,速度会快些。其他时候还是用aliyun的镜像会快些。
- 检查安装是否成功,看到如下图界面,则表示安装成功。
脚本录制
Playwright的脚本录制需要使用命令codegen,下面详细解释一下这个命令的用法:
这个命令需要用的参数如下:
o或–output 指定保存脚本的文件路径及文件名
target 指定生成脚本的语言:Python、JavaScript、C#等
b 指定录制使用的浏览器:如:-b chromium(Chrome浏览器)、-b firefox、-b webkit三种。
项目实战
项目: 在线商城
- 脚本录制
python3 -m playwright codegen -o 'login_b2c.py' --target python -b chromium http://localhost:8080/b2c/index.html
以上为命令执行后进入的界面,当鼠标滑过元素的时候,会自动提示元素的xpath,而且启动的是无痕浏览模式,很容易和本地浏览的页面进行区分。
点击登录链接,弹出下图:
输入必要的信息,进行登录。
登录成功,返回首页,注意红色框框部分,此处为断言目标。
关闭浏览器,输出脚本文件:这里可以看到我们的脚本文件正是命令中指定的那个文件名,右侧为脚本文件代码,这里使用的是同步模式。源码如下:
from playwright import sync_playwright
def run(playwright):
browser = playwright.chromium.launch(headless=False)
context = browser.newContext()
# Open new page
page = context.newPage()
# Go to http://localhost:8080/b2c/index.html
page.goto("http://localhost:8080/b2c/index.html")
# Click text=/.*登录.*/
page.click("text=/.*登录.*/")
# assert page.url == "http://localhost:8080/b2c/login.html"
# Click input[name="username"