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

如何使用Nightwatch处理Safari浏览器的文件下载弹窗问题

解决方案

Safari的WebDriver底层逻辑和Firefox/Chrome不同,你沿用的Firefox风格下载配置本身不被Safari支持,这是配置不生效的核心原因,可按以下步骤调整:

  1. 修正无效配置,替换为Safari支持的下载参数
    Safari不识别safari.helperApps.neverAsk.saveToDisk这类Firefox专属配置,14及以上版本的Safari需要通过se:downloads字段配置下载规则,正确配置示例如下:
"safari": {
  "downloadFolder": "/Users/chef/Downloads/",
  "desiredCapabilities": {
    "browserName": "Safari",
    "safari:safariOptions": {
      "se:downloads": {
        "directory": "/Users/chef/Downloads/"
      }
    }
  }
}

注意:本地路径需要补全根目录前缀/,你原配置里的路径缺失根目录斜杠会导致路径识别失败
2. 提前修改Safari本地权限和默认设置
Safari的安全限制会拦截WebDriver的自动配置修改,你需要手动调整以下设置:

  • 打开Safari - 偏好设置 - 通用,取消勾选「下载后打开“安全”的文件」
  • 顶部菜单栏点击「开发」,勾选「允许远程自动化」(如果没看到开发菜单,先到偏好设置 - 高级里勾选「在菜单栏中显示“开发”菜单」)
  • 给Safari授予下载文件夹的完全访问权限:打开系统设置 - 隐私与安全性 - 文件和文件夹,找到Safari,打开「下载」文件夹的访问权限
  1. 弹窗兜底兼容方案
    如果部分场景依然弹出下载确认框,可以通过AppleScript模拟点击确认,Python调用示例如下:
import subprocess
# 执行AppleScript点击下载弹窗的"下载"按钮
script = """
tell application "Safari"
    activate
end tell
tell application "System Events"
    click button "下载" of window 1 of application process "Safari"
end tell
"""
subprocess.run(["osascript", "-e", script])

内容的提问来源于stack exchange,提问作者prafful_hs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:09