如何在Playwright中上传带有hidden属性的input文件?
Playwright默认不会定位带有hidden属性的元素,直接用常规方式操作会失败,以下两种方法可解决:
方法一:强制定位并上传
使用force: true参数跳过元素可见性检查,直接对hidden的input执行文件上传:
await page.locator('input.xyz').setInputFiles('Upload_files/CSV Test file.csv', { force: true });
这种方法无需修改DOM结构,是最直接的解决方案。
方法二:移除hidden属性后上传
先通过JavaScript移除元素的hidden属性,让元素变为可见后再执行上传:
// 移除hidden属性 await page.locator('input.xyz').evaluate(el => el.removeAttribute('hidden')); // 执行文件上传 await page.locator('input.xyz').setInputFiles('Upload_files/CSV Test file.csv');
注意事项
- 确保文件路径正确,相对路径以脚本执行目录或项目根目录为基准。
- 优先选择方法一,操作更简洁且不会改动页面原有DOM。
内容的提问来源于stack exchange,提问作者Vikas Maurya
相关产品推荐
相关产品推荐

