我想使用 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,一切正常。謝謝!
uj5u.com熱心網友回復:
這頂帽子對我有用:
{
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,
},
},
}
uj5u.com熱心網友回復:
找到了一個解決方案:剛剛添加'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,
},
},
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/370170.html
