click():基础点击,支持自动等待元素可操作(可见、未禁用)。fill():快速填充文本(清空后输入):page.fill('input[name="username"]', 'admin') type():模拟逐字符输入(适用于需触发输入事件的场景):page.type('#search', 'Playwright', delay=100) # 延迟100ms/字符 避坑指南:
if download.suggested_filename.endswith('.csv')npx playwright show-trace trace.zip使用 Playwright Inspector(调试模式)动态调整定位器:
PWDEBUG=1 pytest -s # 启动调试 问题 | 解决方案 |
|---|---|
元素定位失败 | 优先用 get_by_role()/get_by_test_id() 替代 CSS/XPath |
动态加载超时 | 组合 wait_for_selector() + networkidle 事件 |
文件上传卡顿 | 用 set_input_files() 代替模拟点击选择文件 |
跨页面下载丢失 | 确保下载按钮在当前上下文,非新开标签页 |
实战总结:
🔹 优先语义化定位:
get_by_role()兼顾稳定性与可读性 🔹 文件操作走API:set_input_files()和expect_download()替代人工模拟 🔹 调试必用Trace:失败时分析trace.zip定位根因 🔹 复杂交互拆步骤:拖拽/悬停等操作分段验证
掌握上述技能,可覆盖 登录、表单提交、文件管理、动态组件操作 等 90% 的 Web 自动化场景!下一步可进阶学习 网络拦截 与 移动端模拟。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。