2017-12-15 11 views
0

E2Eテスト用の分度器を使用しています。自動化中に、自分のシステムのC:\ Automationフォルダにファイルをダウンロードする必要があります。しかし、以下のコードは機能しません。ファイルをダウンロードして絶対パスにファイルをダウンロードしてください。

注:自動実行中に[名前を付けて保存]ポップアップが開きます(ただし、これを無効にする必要があります)。手動で[保存]オプションをクリックします。それはデフォルトの場所、すなわちダウンロードフォルダに保存されます。私はそれを私の与えられたパスに保存しますか?

let profile = require('firefox-profile');   
let firefoxProfile = new profile(); 

//_browser = 'chrome'; 
_browser = 'firefox'; 
// _browser = 'internet explorer'; 

firefoxProfile.setPreference("browser.download.folderList", 2); 
firefoxProfile.setPreference('browser.download.dir', "C:\\Automation"); 

exports.config = { 
framework: 'custom', 
frameworkPath: require.resolve('protractor-cucumber-framework'), 
capabilities: { 
    'browserName': _browser, 
    'shardTestFiles': false, 
    'maxInstances': 1, 
    'acceptInsecureCerts': true, 
    'moz:firefoxOptions': { 
    'profile': firefoxProfile 
    }}, 
beforeLaunch: function() {...} 
} 

答えて

0

Firefoxが動作するためのいくつかの設定が不足しているようです。これらを追加して、それが役立つかどうか確認してください。

profile.setPreference("browser.download.manager.showWhenStarting", false); 
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", 
    /* A comma-separated list of MIME types to save to disk without asking goes here */); 
0

これは、プロジェクト内のダウンロードフォルダに保存されます。あなたはそれを微調整して所望のフォルダに保存することができます。プロンプトなしでダウンロードするファイルの種類を指定する必要があります。 JSONとcsvは既にそこにあります。

var q = require('q'); 
var path = require('path'); 
var sh = require("shelljs"); 
var cwd = sh.pwd().toString(); 

var FirefoxProfile = require('selenium-webdriver/firefox').Profile; 

var makeFirefoxProfile = function(preferenceMap) { 
    var profile = new FirefoxProfile(); 
    for (var key in preferenceMap) { 
     profile.setPreference(key, preferenceMap[key]); 
    } 
    return q.resolve({ 
     browserName: 'firefox', 
     marionette: true, 
     firefox_profile: profile 
    }); 
}; 

exports.config = { 
    seleniumAddress: 'http://localhost:4444/wd/hub', 
    framework: 'jasmine2', 
    getMultiCapabilities: function() { 
     return q.all([ 
      makeFirefoxProfile(
       { 
        'browser.download.folderList': 2, 
        'browser.download.dir': (path.join(cwd, 'downloads')).toString(), 
        'browser.download.manager.showWhenStarting': false, 
        'browser.helperApps.alwaysAsk.force': false, 
        'browser.download.manager.useWindow': false, 
        'browser.helperApps.neverAsk.saveToDisk': 'application/octet-stream, application/json, text/comma-separated-values, text/csv, application/csv, application/excel, application/vnd.ms-excel, application/vnd.msexcel, text/anytext, text/plaintext' 
       } 
      ) 
     ]); 
    }, 
    allScriptsTimeout: 1000000, 
    specs: ['./tmp/**/*.spec.js'], 

    jasmineNodeOpts: { 
     defaultTimeoutInterval: 1000000, 
     showColors: true 
    }, 
    onPrepare: function() { 
     browser.driver.getCapabilities().then(function(caps) { 
      browser.browserName = caps.get('browserName'); 
     }); 

     setTimeout(function() { 
      browser.driver.executeScript(function() { 
       return { 
        width: window.screen.availWidth, 
        height: window.screen.availHeight 
       }; 
      }).then(function(result) { 
       browser.driver.manage().window().setPosition(0,0); 
       browser.driver.manage().window().setSize(result.width, result.height); 
      }); 
     }); 
    } 
}; 
関連する問題