调试工具
Playwright 脚本可以跟现有的调试工具,如Node.js调试器和浏览器开发者工具等一起使用。同时,Playwright也为浏览器自动化引入了新的调试功能。
Playwright Inspector
Playwright Inspector 是一个自带的GUI工具,可以帮助我们调试Playwright脚本 目前有三种方式打开Playwright Inspector :
- 设置环境变量
PWDEBUG 后,在debug模式下运行脚本文件。会进入Playwright的调试模式并打开Playwright Inspector
# Linux/macOS
PWDEBUG=1 pytest -s
# Windows with cmd.exe
set PWDEBUG=1
pytest -s
# Windows with PowerShell
$env:PWDEBUG=1
pytest -s
设置PWDEBUG=1 时,会同时修改其它的默认参数:1.浏览器改为有头模式。2.默认timeout值改为0
- 添加
page.pause() 方法在你的脚本中,且是通过有头模式启动浏览器:
page.pause()
- 使用Playwright的命令:
open 或者codegen :
playwright codegen wikipedia.org
逐步运行Playwright脚本 设置PWDEBUG=1 之后,Playwright Inspector会被打开,并且脚本会暂停在第一步。可以看到脚本要执行什么操作,操作执行完的时间、结果。例如,当暂停Click时,Playwrigth会将要点击的点在页面上用大红点突显: 当Playwright暂停操作时,可以日志里看到已经执行了操作性检查 可以无需暂停,使用“跳过”操作或继续脚本来跳过步骤。
点击Record可以录制当前页面的操作
Trace Viewer
Playwright Trace Viewer 是一个 GUI 工具,可以看到整个脚本运行记录情况,报错代码执行情况,log,以及屏幕截图,以整个时间条的样式展示。 通过在脚本插入Tracing的API来开启以及生成数据文件
browser = chromium.launch()
context = browser.new_context()
context.tracing.start(screenshots=True, snapshots=True)
page.goto("https://baidu.com")
context.tracing.stop(path = "trace.zip")
这部分照着官方文档可以成功生成trace.zip数据,但是打开后无法看到数据,所有详细步骤暂时没有写,感兴趣的可以去看看官方文档。https://playwright.dev/docs/trace-viewer/#recording-a-trace
命令行
安装浏览器
Playwrigth 可以安装支持的浏览器,在没有参数的情况下时是安装所有默认浏览器
playwright install
也可以通过命令参数,来安装指定浏览器
playwright install webkit
录制生成代码
playwright codegen 命令会打开浏览器,并开启Playwright Inspector,会记录在浏览器的操作,并同步生成代码:
playwright codegen baidu.com
这里的元素定位是基于文本内容来定位
保存身份状态
运行codegen 命令加上--save-storage 后,会在最后保存cookies和localStorage,生成指定数据文件,之后在运行脚本时,可以加载该数据。这种单独生成身份状态的数据,对于很多测试场景来说会很有用。例如登录之后保存其状态,之后可以在不加载登录流程的情况下单独去跑其它流程。
playwright codegen --save-storage=auth.json
运行--load-storage 命令可以加载之前存储的身份状态数据。
playwright open --load-storage=auth.json my.web.app
playwright codegen --load-storage=auth.json my.web.app
Playwright同样提供了API来完成这样的操作,其余的命令也大部分都有对应的API,所以这里就先不展开,在之后的API学习里再详细介绍,感谢的同学可以去官方文档浏览https://playwright.dev/python/docs/cli/
|