Javascript Dojo实习生设置firefox配置文件名称

Javascript Dojo实习生设置firefox配置文件名称,javascript,firefox,testing,selenium,intern,Javascript,Firefox,Testing,Selenium,Intern,您好,我正在尝试在配置文件的环境设置中设置firefox配置文件名。我已经尝试了 environments: [ { browserName: 'firefox',firefox_profile:'default' }, {firefox_profile:'default'} ], 及 以及 capabilities: { 'selenium-version': '2.42.0', firefox_profile:'default'

您好,我正在尝试在配置文件的环境设置中设置firefox配置文件名。我已经尝试了

environments: [
    { browserName: 'firefox',firefox_profile:'default' },
    {firefox_profile:'default'}
     ],

以及

 capabilities: {
        'selenium-version': '2.42.0',
        firefox_profile:'default'
    },
如中所述 但firefox仍然以匿名模式发布

但是如果我用

浏览器启动默认配置文件,即“kinit ed”(kerberos)

正如您提到的页面所指出的,
firefox\u profile
的值必须是Base64编码的配置文件。具体来说,您可以压缩Firefox配置文件目录,对其进行Base64编码,并将该字符串用作
Firefox\u profile
的值。npm包可以使这一过程更容易。你最终会得到这样的结果:

environments: [
    { browserName: 'firefox', firefox_profile: 'UEsDBBQACAAIACynEk...'; },
    ...
],

我建议将配置文件字符串存储在一个单独的模块中,因为它大约为250kb。

我使用@jason0x43建议来依赖Node.js模块,并且我创建了以下grunt任务
fireforProfile4selenium
。通过在
grunfile.js
中设置一个简单的配置,该插件使用压缩配置文件的Base64编码版本在磁盘上写入一个文件

以下是grunt配置:

firefoxProfile4selenium: {
    options: {
        proxy: {
            host: '...',
            port: ...
        },
        bypass: [ 'localhost', '127.0.0.1', '...' ]
    },
    default: {
        files: [{
            dest: 'firefoxProfile.b64.txt'
        }]
    }
}
以下是插件:

/*global require, module*/
var fs = require('fs'),
    FirefoxProfile = require('firefox-profile'),
    taskName = 'firefoxProfile4selenium';

module.exports = function (grunt) {
    'use strict';

    grunt.registerMultiTask(taskName, 'Prepares a Firefox profile for Selenium', function () {
        var done = this.async(),
            firefoxProfile = new FirefoxProfile(),
            options = this.options(),
            host = this.options().proxy.host,
            port = this.options().proxy.host,
            bypass = this.options().bypass,
            dest = this.files[0].dest;

        // Set the configuration type for considering the custom settings
        firefoxProfile.setPreference('network.proxy.type', 2);

        // Set the proxy host
        firefoxProfile.setPreference('network.proxy.ftp', host);
        firefoxProfile.setPreference('network.proxy.http', host);
        firefoxProfile.setPreference('network.proxy.socks', host);
        firefoxProfile.setPreference('network.proxy.ssl', host);

        // Set the proxy port
        firefoxProfile.setPreference('network.proxy.ftp_port', port);
        firefoxProfile.setPreference('network.proxy.http_port', port);
        firefoxProfile.setPreference('network.proxy.socks_port', port);
        firefoxProfile.setPreference('network.proxy.ssl_port', port);

        // Set the list of hosts that should bypass the proxy
        firefoxProfile.setPreference('network.proxy.no_proxies_on', bypass.join(','));

        firefoxProfile.encoded(function (zippedProfile) {
            fs.writeFile(dest, zippedProfile, function (error) {
                done(error); // FYI, done(null) reports a success, otherwise it's a failure
            });
        });
    });
};
firefoxProfile4selenium: {
    options: {
        proxy: {
            host: '...',
            port: ...
        },
        bypass: [ 'localhost', '127.0.0.1', '...' ]
    },
    default: {
        files: [{
            dest: 'firefoxProfile.b64.txt'
        }]
    }
}
/*global require, module*/
var fs = require('fs'),
    FirefoxProfile = require('firefox-profile'),
    taskName = 'firefoxProfile4selenium';

module.exports = function (grunt) {
    'use strict';

    grunt.registerMultiTask(taskName, 'Prepares a Firefox profile for Selenium', function () {
        var done = this.async(),
            firefoxProfile = new FirefoxProfile(),
            options = this.options(),
            host = this.options().proxy.host,
            port = this.options().proxy.host,
            bypass = this.options().bypass,
            dest = this.files[0].dest;

        // Set the configuration type for considering the custom settings
        firefoxProfile.setPreference('network.proxy.type', 2);

        // Set the proxy host
        firefoxProfile.setPreference('network.proxy.ftp', host);
        firefoxProfile.setPreference('network.proxy.http', host);
        firefoxProfile.setPreference('network.proxy.socks', host);
        firefoxProfile.setPreference('network.proxy.ssl', host);

        // Set the proxy port
        firefoxProfile.setPreference('network.proxy.ftp_port', port);
        firefoxProfile.setPreference('network.proxy.http_port', port);
        firefoxProfile.setPreference('network.proxy.socks_port', port);
        firefoxProfile.setPreference('network.proxy.ssl_port', port);

        // Set the list of hosts that should bypass the proxy
        firefoxProfile.setPreference('network.proxy.no_proxies_on', bypass.join(','));

        firefoxProfile.encoded(function (zippedProfile) {
            fs.writeFile(dest, zippedProfile, function (error) {
                done(error); // FYI, done(null) reports a success, otherwise it's a failure
            });
        });
    });
};