扼要:
1、了解playwright的基础知识;
2、用playwright进行web录制web测试;
3、用python+playwright进行脚本操作web测试;
playwright是微软推出的一款开源的新的web自动化测试工具。其支持多种语言:java、javascript、C#、python等等。其支持的浏览器:chromium、Firefox、webkit。本课程主要以python语言为主。
其能适合没有一点python或者编程语言基础的测试人员学习,因为该工具能利用一行命令即可进行web的代码路径。
Python+playwright环境搭建
1、操作系统安装python3.7.5
2、安装playwright:pip install playwright -i https://mirrors.aliyun.com/pypi/simple/
备注:-i 后面的连接为阿里云地址,安装速度快;
3、安装playwright的浏览器驱动:python -m playwright install
playwright命令
1、录制命令:python -m playwright codegen
其后面可以带参数:
-o:后面添加文件和文件的路径,是指将录制的代码保存到某位置;
--target:后面添加录制的文件为哪种编程语言,默认为python;
-b:后面添加浏览器名称,一般支持chromium(简写:cr)、firefox(简写:ff)、webkit(简写:wk) 三个浏览器;
--save-storage :后面添加保存登录状态的配置文件,指保留登录状态;
--load-storage:后面添加使用--save-storage命令保存的登录状态配置文件,指录制时是在登录状况下进行。
2、录制示例
下面以新浪H5端作为录制实例。
2.1、在cmd执行命令:python -m playwright codegen -b cr https://news.sina.cn/ -o D:\test\sian.py --target python
2.2、在启动Google浏览器后,进行操作,脚本自动保存了。
2.3、如下图所示:

playwright录制
Python+playwright代码示例
代码如下:
# 导入playwright的同步sync_playwright库
from playwright import sync_playwright
# 导入时间库
import time
# 测试新浪H5的简单页面函数
def sinaTest(playwright):
# 启动firefox浏览器:firefox 值可以改为chromium(Google浏览器)、webkit浏览器
browser = p.firefox.launch(headless=False) # True表示不显示浏览器运行;False表示显示浏览器运行,默认为True
# 浏览器启动新页面
page = browser.newPage()
# 浏览器打开新浪页面
page.goto('https://sina.cn/?universallink=1')
# 等待5秒后,再操作下面点击“新闻”的连接,否则会出错。因为页面加载时间比较慢
time.sleep(5)
# 点击“新闻”连接按钮
page.click('text="新闻"') # 也可以使用page.goto ( "https://news.sina.cn/?vt=4&pos=108" )跳转到新闻页面
# 等待10秒,再进行下面截图操作,否则截图就不是新闻页面了
time.sleep ( 10 )
# 截图
page.screenshot(path='./img/新浪-新闻.png')
# 关闭浏览器
browser.close()
# 运行函数
with sync_playwright() as p:
sinaTest(p)
完整的截图:

playwright代码
Python+playwright难点
1、定位问题
1.1、初学者或者难定位的元素,可以进行录制,然后查看录制的代码,解决定位;
1.2、定位也是通过text、xpath、name、id等等html+css属性、选择器进行;和selenium定位相同。
2、自动编写脚本时,往往在页面还没有加载完,但基本已经执行导致抛出异常,所以需要添加等待时间或者需要等待元素被加载完才继续执行后续的脚本。