Установить Firefox профиль транспортир
Я пытаюсь использовать этот код:
var makeFirefoxProfile = function (preferenceMap) {
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",
firefox_profile: encodedProfile
};
deferred.resolve(capabilities);
});
return deferred.promise;
};
getMultiCapabilities: function () {
return q.all([
makeFirefoxProfile(
{
"browser.download.folderList": 2,
"browser.download.dir": "D:/Automation",
"browser.helperApps.alwaysAsk.force": false
}
)
]);
},
Но он показывает ошибку: Ошибка: TypeError: profile.getTemplateDir не является функцией, я не знаю, как это исправить.
1 ответ
Решение
Это похоже на selenium-webdriver
(который используется protractor
) используется для принятия строки в кодировке base64 firefox_profile
свойство свойства. Но теперь он ожидает selenium-webdriver/firefox
,Profile
пример. Вот как вы можете решить свою проблему:
// make sure you have access to the selenium-webdriver firefox Profile class
var FirefoxProfile = require("selenium-webdriver/firefox").Profile;
//...
// then change makeFirefoxProfile() function implementation with the following...
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
});
};
Надеюсь, это поможет.
Обратите внимание, что firefox-profile
пакет больше не нужен.