我正在尝试将Protractor用于启用了Windows身份验证的网站。我可以通过在网址(http://username:password@server.url/)中传递凭据来使用Chrome与网站,但对于Firefox我遇到了麻烦。它会提示输入用户名和密码。
在Firefox的about:config中,根据其他互联网搜索,我将'browser.safebrowsing.malware.enabled'设置为false,但是当我尝试在URL browser.get中传递凭据时,我仍然会继续收到提示。 )。
我有一个外在的想法,即在Firefox中使用LastPass到AutoLogin,当我现在导航到URL时,它确实有效。但是当我运行Protractor时,它打开了一个类似Firefox的shell而没有插件。
有没有办法在运行Firefox时为Protractor启用插件?
我还尝试了以下操作来创建配置文件并验证恶意软件配置行的设置是否为false。我仍然继续获得Windows身份验证弹出框。
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
};
答案 0 :(得分:0)
在Firefox的about:config中我将'browser.safebrowsing.malware.enabled'设置为false
这需要告诉firefox在firefox-profile
和q
包的帮助下启动新的浏览器实例时设置(另请参阅示例Prawn):
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"]),
...
}