1

Я пытаюсь использовать этот код:Установить светлячок профиль транспортир

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 
     } 
    ) 
    ]); 
    }, 

Но это показывает ошибку: Ошибка: Ошибка типа: profile.getTemplateDir не является функцией Я не знаю, как это исправить ,

+0

Что вы используете для использования в Protractor, Firefox, q, firefox-profile? Попытка воспроизвести проблему, но работает для меня до сих пор (у меня есть точно такая же функция 'makeFirefoxProfile') – alecxe

+0

Protractor 5.0 Firefox 51.0.1 (64 бит) " firefox-profile ":"^0.4.8 ", –

+0

Can ты поддерживаешь меня? Спасибо –

ответ

3

похоже 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 пакет больше не нужно.