大家好,我是阿萨。昨天讲了定位元素的调试方式,今天 学习如何调试写好的脚本。
Playwright检查器
Playwright Inspector是一个GUI工具,帮助编写和调试Playwright脚本。这是我们默认推荐的脚本故障排除工具。
有几种打开Playwright Inspector的方法。
PWDEBUG
设置PWDEBUG环境变量,在调试模式下运行你的脚本。将配置Playwright进行调试并打开检查器。
Bash
PWDEBUG=1 pytest -s
PowerShell:
$env:PWDEBUG=1pytest -s
批处理
PWDEBUG=1 pytest -s
当设置PWDEBUG=1时,会配置其他有用的默认值。
- 浏览器以头部模式启动
- 默认超时被设置为0(=无超时)。
使用PWDEBUG=console将配置浏览器在开发工具控制台进行调试。
- 运行标题。浏览器总是以标题模式启动
- 禁用超时。将默认超时设置为0(=无超时)。
- 控制台助手。在浏览器中配置一个playwright对象,生成并突出显示Playwright定位器。这可以用来验证定位器。
Bash
PWDEBUG=console pytest -s
PowerShell
$env:PWDEBUG="console"pytest -s
批处理
PWDEBUG=console pytest -s
page.pause
在浏览器中运行时,从你的脚本中调用page.pause()方法。
同步
# 在下面一行暂停.page.pause()
异步
# 在下面一行暂停. await page.pause()
在Playwright CLI中使用open或codegen命令。
playwright codegen wikipedia.org
逐步浏览Playwright脚本
当你浏览测试的每一行时,检查器会打开一个浏览器窗口,突出显示各种元素。使用探索按钮来选择一个定位器,然后你可以把它复制到你的测试文件中,重新运行你的测试,看看它们是否通过。
使用工具栏播放测试,或使用 "Step over "动作(键盘快捷键:F10)跨过每个动作,或恢复脚本,不再停顿(F8)。
现在我们知道要执行什么动作了,我们可以研究这个动作的细节。例如,当停在一个输入动作(如点击)上时,Playwright即将点击的确切位置会在被检查的页面上用大红点突出显示。
可操作性日志
当Playwright在该点击动作上暂停时,它已经进行了可操作性检查,可以在日志中找到。
如果不能达到可操作性,它就会把动作显示为待定。
探索选择器
使用 "探索 "按钮,将鼠标悬停在页面上的一个元素上,通过点击它来探索它的选择器。然后你可以把这个选择器复制到你的测试中,并重新运行你的测试,看他们现在是否通过了这个选择器。
浏览器开发工具
你可以在Chromium、Firefox和WebKit中使用浏览器开发工具,同时在领导模式下运行一个Playwright脚本。开发者工具有助于。
- 检查DOM树并找到元素选择器
- 在执行过程中查看控制台日志(或学习如何通过API读取日志)
- 检查网络活动和其他开发者工具的功能使用page.pause()方法是暂停Playwright脚本执行和在开发者工具中检查页面的一个简单方法。它还会打开Playwright Inspector来帮助调试。
有头模式
Playwright默认以无头模式运行浏览器。要改变这种行为,请使用headless: false作为启动选项。你也可以使用slow_mo选项来减慢执行速度(每次操作减慢N毫秒),并在调试时跟上。
同步
chromium.launch(headless=False, slow_mo=100) # 或 firefox, webkit
异步
await chromium.launch(headless=False, slow_mo=100) # or firefox, webkit