【问题标题】:Protractor, Firefox, Windows Authentication, LastPass量角器、Firefox、Windows 身份验证、LastPass
【发布时间】:2015-07-18 15:32:07
【问题描述】:

我正在尝试将 Protractor 与启用了 Windows 身份验证的站点一起使用。我可以通过在 URL (http://username:password@server.url/) 中传递凭据来将 Chrome 与站点一起使用,但对于 Firefox,我遇到了麻烦。它会提示输入用户名和密码。

在 Firefox 的 about:config 中,根据其他 Internet 搜索,我已将“browser.safebrowsing.malware.enabled”设置为 false,但是当我尝试在 URL browser.get 中传递凭据时,我仍然会继续收到提示( )。

我有一个在 Firefox 中使用 LastPass 来自动登录的想法,当我现在导航到 URL 时,它确实有效。但是当我运行量角器时,它会打开一个没有插件的 Firefox 版本的 shell。

有没有办法在 Protractor 运行 Firefox 时启用插件?

我还尝试了以下方法来创建配置文件并验证恶意软件配置行的设置是否为假。我还是继续得到 Windows Authentication 弹框。

var Firefox = require('..\\node_modules\\selenium-webdriver\\firefox'); 
var getFFProfile = function() { 
    var deferred = q.defer(); 
    var ffProfile = new Firefox.Profile(); 
    ffProfile.setPreference('browser.safebrowsing.malware.enabled', false);
    ffProfile.encode().then(function(encodedProfile) { 
        var multiCapabilities = [{ 
            browserName: 'firefox', 
            firefox_profile : encodedProfile 
        }]; 
        deferred.resolve(multiCapabilities);
    }); 
    return deferred.promise; 
}; 
exports.config= {
    specs:['spec.js'],
    getMultiCapabilities:getFFProfile
};

【问题讨论】:

    标签: firefox protractor


    【解决方案1】:

    在 Firefox 的 about:config 中,我将 'browser.safebrowsing.malware.enabled' 设置为 false

    这是您需要在 firefox-profileq 包的帮助下启动新浏览器实例时告诉 Firefox 设置的内容(另请参见示例 here):

    var FirefoxProfile = require("firefox-profile");
    var q = require("q");
    
    var makeFirefoxProfile = function(preferenceMap, specs) {
        var deferred = q.defer();
        var firefoxProfile = new FirefoxProfile();
    
        for (var key in preferenceMap) {
            firefoxProfile.setPreference(key, preferenceMap[key]);
        }
    
        firefoxProfile.encoded(function (encodedProfile) {
            var capabilities = {
                browserName: "firefox",
                directConnect: true,
                firefox_profile: encodedProfile,
                specs: specs
            };
    
            deferred.resolve(capabilities);
        });
        return deferred.promise;
    };
    
    exports.config = {
         getMultiCapabilities: makeFirefoxProfile({"browser.safebrowsing.malware.enabled": false}, ["specs/myspec.js"]),
         ...
    }
    

    【讨论】:

    • 我缺少 Firefox 配置文件。我将在今天晚些时候对此进行调查并进行测试。非常感谢您的快速响应 alecxe。
    • 我在上面做了一些更改,但它仍然不适合我。
    • 我的更改:var Firefox = require('..\\node_modules\\selenium-webdriver\\firefox'); var getFFProfile = function() { var deferred = q.defer(); var ffProfile = new Firefox.Profile(); ffProfile.setPreference('browser.safebrowsing.malware.enabled', false); ffProfile.encode().then(function(encodedProfile) { var multiCapabilities = [{ browserName: 'firefox', firefox_profile : encodedProfile }]; deferred.resolve(multiCapabilities); }); return deferred.promise; }; exports.config={specs:['spec.js'],getMultiCapabilities:getFFProfile}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-06
    • 1970-01-01
    • 2010-10-05
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多