【问题标题】:Download files automatically through firefox with nodeJS and webdriverio使用nodeJS和webdriverio通过firefox自动下载文件
【发布时间】:2022-01-06 10:09:11
【问题描述】:

我想使用 NodeJS 和 Webdriverio 验证文件下载。下载的文件为PDF格式。当 WebDriverIO 点击“下载”时,Firefox 会打开以下下载确认窗口:

我希望 Firefox 自动下载文件而不显示上面的确认窗口,所以我使用了以下代码:

 conf_firefox.js file
require('dotenv').config();
const path = require('path');
const merge = require('deepmerge');
const baseConfig = require('./wdio.conf_base');

exports.config = merge(baseConfig.config, {
  services: ['selenium-standalone'],
  capabilities: [
    {
      maxInstances: 2,
      browserName: 'firefox',
      'moz:firefoxOptions': {
        prefs: {
          'browser.download.dir': path.join(__dirname, '../test-data/tmp/download/firefox'),
          'browser.helperApps.neverAsk.saveToDisk': 'application/pdf',
        },
      },
      acceptInsecureCerts: true,
    },
  ],
});

但 Firefox 仍然显示相同的窗口。如何设置 Firefox 配置文件以便自动下载 PDF 文件而不显示确认对话框? 对于 chrome,一切正常。谢谢!

【问题讨论】:

  • 尝试在 perfs 中添加以下行 -> 'browser.helperApps.alwaysAsk.force' : false 'browser.download.manager.showWhenStarting' : false
  • @NitinSahu 不幸的是,但它没有帮助:(
  • 奇怪的是它不起作用。我刚看到这个链接stackoverflow.com/questions/23800195/…如果这能解决你的问题,你可以试试
  • @NitinSahu 找到了解决方案:只需添加 'pdfjs.disabled': true 而不是 application/json 使用 application/octet-stream

标签: javascript node.js firefox automation webdriver-io


【解决方案1】:

这顶帽子适合我:

{
  browserName: "firefox",
  "moz:firefoxOptions": {
    prefs: {
      "browser.download.dir": downloadDir,
      "browser.download.useDownloadDir": true,
      "browser.helperApps.alwaysAsk.force": false,
      "browser.helperApps.neverAsk.saveToDisk": "application/pdf,image/jpeg,image/jpg,text/calendar,text/csv",
      "pdfjs.disabled": true,
    },
  },
}

【讨论】:

    【解决方案2】:

    找到了解决方案:刚刚添加了'pdfjs.disabled': true,而不是application/json,使用了application/octet-stream

    browserName: 'firefox',
          'moz:firefoxOptions': {
            prefs: {
              'browser.download.dir': path.join(__dirname, '../test-data/tmp/download/firefox'),
              'browser.download.folderList': 2,
              'browser.helperApps.neverAsk.saveToDisk': 'application/octet-stream',
              'pdfjs.disabled': true,
            },
          },
    

    【讨论】:

      猜你喜欢
      • 2019-06-01
      • 1970-01-01
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-17
      相关资源
      最近更新 更多