Столкнулся с проблемой использования специфического профиля для 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, но как-то лень, и, потом, надо этот самопальный класс будет где-то хранить, помнить о нем...
Кто-нибудь сталкивался с этим уже?