Playwright中page.type弃用后的替代方案及页面按键输入问题
Playwright 替代已弃用的page.type方法解决输入问题
核心解决方案
当locator.fill无法适配特殊输入框时,使用**locator.pressSequentially**替代已弃用的page.type,该方法会模拟真实的逐个按键输入,与原page.type行为完全一致,能兼容带格式校验、动态掩码的自定义输入字段。
修改后的代码
await this.phoneContactField.scrollIntoViewIfNeeded(); await this.phoneContactField.click({position: {x: 35, y: 15}}); // 替换page.type,模拟逐个按键输入文本 await this.phoneContactField.pressSequentially('970-867-5309');
可选优化:模拟真实输入速度
如果需要贴近手动输入的延迟效果,可添加delay参数设置按键间隔:
await this.phoneContactField.pressSequentially('970-867-5309', { delay: 100 }); // 每个按键间隔100毫秒
补充说明
locator.fill直接修改输入框的value属性,会跳过前端的按键事件监听、输入格式化等逻辑,这是它在部分自定义输入框上失效的原因。而pressSequentially会触发完整的按键流程,和手动输入的交互逻辑完全匹配,因此能解决这类兼容性问题。
内容的提问来源于stack exchange,提问作者emery
相关产品推荐
相关产品推荐

