You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Playwright上传Google Photos:如何关闭弹出的文件选择窗口

解决Python Playwright上传Google Photos时弹出系统文件窗口的问题

核心问题原因

你点击「上传>电脑」后触发了浏览器默认的系统文件选择弹窗,这是因为该按钮的点击事件会自动唤起系统弹窗,后续再设置input[type="file"]的文件时,弹窗已经弹出——而这是系统级窗口,无法通过Playwright直接关闭。

解决方案

方法1:直接定位隐藏的文件上传元素(推荐)

Google Photos的input[type="file"]元素实际已存在,只是被CSS隐藏,Playwright可直接定位并强制设置文件,无需触发弹窗:

# 用accept属性过滤图片/视频类型,选择器更稳定
file_input = page.locator('input[type="file"][accept="image/*,video/*"]')
# 强制设置文件,忽略元素隐藏状态
file_input.set_input_files('F:/python practice/googlephotosbot/big data.jpeg', force=True)

方法2:拦截文件选择对话框

如果必须通过点击「上传>电脑」加载input元素,可通过Playwright的文件选择器监听功能捕获弹窗,直接设置文件避免系统窗口弹出:

# 监听即将出现的文件选择对话框
with page.expect_file_chooser() as fc_info:
    # 用文本定位按钮,避免依赖易变的class名称
    page.locator('text="上传"').click()
    page.locator('text="电脑"').click()
# 获取对话框实例并设置文件
file_chooser = fc_info.value
file_chooser.set_files('F:/python practice/googlephotosbot/big data.jpeg')

优化建议

  • 替换选择器时,优先使用text="文本内容"或[aria-label="xxx"]这类语义化选择器,避免依赖频繁变化的class
  • 不要用sleep(),改用Playwright的等待方法提升稳定性:
    page.locator('text="上传"').click()
    page.wait_for_locator('text="电脑"').click()
    

内容的提问来源于stack exchange,提问作者Md Tanzin Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:25:23