Профиль для FireFox в Windows8


(ahmelevsky) #1

Столкнулся с проблемой использования специфического профиля для Firefox в Windows8. 

Наверняка многим знаком такой способ: 

 

ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("Firefox_Profile_Name");
driver = new FirefoxDriver(profile);

 

Увы, класс ProfilesIni, а точнее его метод locateAppDataDirectory не знает о существовании Windows8. В методе есть такое место: 

switch (os) {
case WINDOWS:
case VISTA:
case XP:
appData = new File(MessageFormat.format("{0}\\Mozilla\\Firefox", System.getenv("APPDATA")));
break;

... 

default:
appData = new File(MessageFormat.format("{0}/.mozilla/firefox", System.getenv("HOME")));
break;

 

Для Windows8 переменная os равна Win8, в итоге мы попадаем в default, и путь к нашему чудесному файлику profiles.ini определяется через системную переменную HOME + "/.mozilla/firefox". В восьмерке этот файл, надо сказать, лежит там же где и в других версиях винды. Положим, сделать %HOME% со значением AppData% не проблема, но вот эта точка перед mozilla.... Лично я не нашел ничего лучшего как создать самому в AppData папку /.mozilla/firefox и скопировать туда profiles.ini

Была мысль написать класс унаследованный от ProfilesIni и переопределить метод locateAppDataDirectory, включив туда Win8, но как-то лень, и, потом, надо этот самопальный класс будет где-то хранить, помнить о нем...

Кто-нибудь сталкивался с этим уже?  


(Mykhailo Poliarush) #2

ну тут надо немного подождать, чтобы включили поддержку для win8

чтобы ускорить этот процесс предлагаю создать тикет на команду https://code.google.com/p/selenium/issues/entry

ну а в то время, да придется использовать воркараунды, Вы уже сами их написали

сам лично с этой проблемой не сталкивался