如何用Python Playwright实现自动化测试中的文件上传?
- 内容介绍
- 文章标签
- 相关推荐
你有没有遇到过这种情况:明明代码写得没问题,但就是上传不了文件?特别是当你在做自动化测试的时候,文件上传这个环节总是让人头大。今天我们就来聊聊,如何用Python Playwright来搞定这个“小麻烦”。
文件上传的两种方式
在Playwright中, 文件上传其实有两种方式:一种是针对input控件的,另一种是针对非input控件的。听起来是不是有点绕?别急,我们慢慢来。

input控件上传
input控件上传是最常见的一种方式。你只需要找到那个input元素, 然后调用set_input_files方法, 说真的... 把文件路径传进去,就OK了。比如:
# 定位input控件并上传文件
page.locator.set_input_files
这种方式简单粗暴,适用于大多数场景。但如果你遇到的不是input控件,那就得用第二种方式了,希望大家...。
非input控件上传稍微复杂一点。你需要监听filechooser事件,然后在点击上传按钮后手动选择文件。代码大概是这样的:,一句话。
with page.expect_file_chooser as fc_info:
page.locator.click # 点击上传按钮
file_chooser = fc_info.value
file_chooser.set_files
这种方式虽然麻烦一点, 但胜在通用性强,几乎可以应对所有上传场景。
一个让人抓狂的小插曲
别担心... 宏哥在实际操作中发现了一个奇怪的现象:明明他用的是非input控件的上传方式,但代码却莫名其妙地成功了。
你有没有遇到过这种情况:明明代码写得没问题,但就是上传不了文件?特别是当你在做自动化测试的时候,文件上传这个环节总是让人头大。今天我们就来聊聊,如何用Python Playwright来搞定这个“小麻烦”。
文件上传的两种方式
在Playwright中, 文件上传其实有两种方式:一种是针对input控件的,另一种是针对非input控件的。听起来是不是有点绕?别急,我们慢慢来。

input控件上传
input控件上传是最常见的一种方式。你只需要找到那个input元素, 然后调用set_input_files方法, 说真的... 把文件路径传进去,就OK了。比如:
# 定位input控件并上传文件
page.locator.set_input_files
这种方式简单粗暴,适用于大多数场景。但如果你遇到的不是input控件,那就得用第二种方式了,希望大家...。
非input控件上传稍微复杂一点。你需要监听filechooser事件,然后在点击上传按钮后手动选择文件。代码大概是这样的:,一句话。
with page.expect_file_chooser as fc_info:
page.locator.click # 点击上传按钮
file_chooser = fc_info.value
file_chooser.set_files
这种方式虽然麻烦一点, 但胜在通用性强,几乎可以应对所有上传场景。
一个让人抓狂的小插曲
别担心... 宏哥在实际操作中发现了一个奇怪的现象:明明他用的是非input控件的上传方式,但代码却莫名其妙地成功了。

