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

如何通过Karate DSL配置Chrome浏览器的默认下载目录?

解决Karate DSL中Chrome指定下载目录无效的问题

你的配置错误在于Chrome实验选项的格式不正确,直接将路径作为prefs的值是无效的。需要通过experimentalOptions正确配置Chrome的偏好设置,明确指定下载目录及相关参数。

正确配置方式

在Karate中配置Chrome Driver时,需通过experimentalOptions传入prefs对象,设置download.default_directory,同时建议关闭下载提示、自动允许特定文件类型下载,避免弹窗干扰测试:

Feature: download json

@debug
Scenario: download json
    * def downloadDir = 'C:\\workspaces\\gs\\src\\test\\java\\ui_gs\\qa'
    * configure driver = { 
        type: 'chrome', 
        experimentalOptions: {
            prefs: {
                'download.default_directory': downloadDir,
                'download.prompt_for_download': false,
                'download.directory_upgrade': true,
                'safebrowsing.enabled': true
            }
        },
        start: true
    }
    Given driver 'http://localhost:52330/src/test/java/ui_gs/encrypt_json.html'
    And input('#rol','adm')
    And input('#usuario','users')
    When click('#button_json')
    Then match text('#user_AES') != 'null'
    # 可选:验证文件是否下载到指定目录
    * def targetFile = downloadDir + '/your-target-filename.json'
    * match karate.exists(targetFile) == true

关键说明

  • 路径转义:Windows系统路径需用双反斜杠\\,或直接使用正斜杠/(如'C:/workspaces/gs/src/test/java/ui_gs/qa'),避免转义错误。
  • experimentalOptions:无需加--前缀,Karate会自动处理Chrome的实验选项配置,替代你之前错误的addOptions写法。
  • 额外prefs参数:
    • download.prompt_for_download: false 关闭下载确认弹窗
    • download.directory_upgrade: true 允许浏览器升级下载目录权限
    • safebrowsing.enabled: true 跳过安全检查,避免拦截下载

验证步骤

测试完成后,可通过karate.exists()方法检查指定目录下是否存在目标文件,确认下载路径生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:10:16