Как установить профиль Firefox на конце узла в конфигурации удаленного веб-драйвера/сетки

Всегда рекомендуется установить профиль firefox в DesiredCapabilities и передать его по сети, где работает концентратор. Как ниже

DesiredCapabilities caps = DesiredCapabilities.firefox();

    FirefoxProfile profile=new FirefoxProfile(new File("Local Path to firefox profile folder"));
    caps.setCapability(FirefoxDriver.PROFILE, profile);

URL url = new URL("http://localhost:4444/wd/hub");      
WebDriver driver= new RemoteWebDriver(url,caps );

Но отправка огромных 87–90 МБ данных профиля в концентратор по протоколу http для каждого тестового примера с селеном замедляет выполнение тестового набора.

Я попытался настроить узел сетки со свойством "Dwebdriver.firefox.profile=E:\\Firefox_Profile_Location":"", в файле конфигурации узла json, как показано ниже.

{
"configuration":
{
.//Other Settings
.//Other Settings
.//Other Settings
"Dwebdriver.firefox.profile=E:\\Firefox_Profile_Location":"",
"maxSession":7,
"registerCycle":5000,
"register":true
},
"capabilities":
[

{"browserName":"firefox",
"seleniumProtocol":"WebDriver",
"maxInstances":5,
"platform":"VISTA"
}
]
}

Но работа с вышеуказанной конфигурацией выдает ошибку ниже.

WebDriverException: профиль Firefox «E:\Firefox_Profile_Location», указанный в системном свойстве «webdriver.firefox.profile», не найден

Заранее спасибо за любую помощь в настройке профиля firefox со стороны узла.


person Som    schedule 08.09.2016    source источник
comment
Почему вы используете папку профиля Firefox и не устанавливаете настройки профиля с помощью кода селена? Какие требования к профилю firefox?   -  person Amanpreet Kaur    schedule 12.09.2016
comment
При настройке через код он должен передаваться по http на конец узла, а это требует времени. Я хочу сократить время, установив конфигурацию профиля firefox на конце узла с настройками конфигурации conde.   -  person Som    schedule 14.09.2016


Ответы (2)


Вам необходимо предоставить профиль в объекте capabilities в виде zip-файла с кодировкой base64:

var fs = require('fs');
capabilities: [
  {
    browserName: 'firefox',
    seleniumProtocol: 'WebDriver',
    maxInstances: 5,
    platform: 'VISTA',
    firefox_profile: new Buffer(fs.readFileSync("./profile.zip")).toString('base64')
  }
]

Более того, Firefox создает недостающие файлы для данного профиля. Таким образом, вы должны хранить только необходимые файлы в профиле в зависимости от ваших потребностей:

Preferences:  user.js
Passwords:    key3.db
              logins.json
Cookies:      cookies.sqlite
Certificate:  cert8.sqlite
Extensions:   extensions/
person Florent B.    schedule 15.09.2016

Я думаю, вам придется использовать имя профиля Firefox, а не местоположение.

"webdriver.firefox.profile":"default"

Взгляните на это и это и это

Если вы хотите узнать, как создать профиль, следуйте этому и это

person user1207289    schedule 14.09.2016