При каждом запуске теста FireFox создает новый профайл. При этом диск быстро засоряется. Как это избежать кроме как чистить вручную?
При каждом запуске теста FireFox создает новый профайл. При этом диск быстро засоряется. Как это избежать кроме как чистить вручную?
public void DeleteAllVisibleCookies()
{
driver.Manage().Cookies.DeleteAllCookies();
}
Есть такое.. не совсем то что нужно
Вот я наблюдаю за свободным местом на винчестере. Перед выполнением одного теста было 356 Мб свободно, перед завершением 324 Mb, после завершения (и удаления печенек) - 338 Mb. В "..\AppData\Local\Temp" папки, которые соответствуют запускам тестов, и они не удаляются.
так это у вас с Файрфокса темп файлы засоряют
TIF Cleaner в помощь)
погуглите как какой то батник написать как удалять TIF-ки и запускайте командно с тестов, примерно так:
Спасибо за наводку, помогла.
Вот содержимое батника:
For /F "Delims=" %%I In ('Dir %USERPROFILE%\AppData\Local\Temp\ /AD /B') Do RD /S /Q "%USERPROFILE%\AppData\Local\Temp\$anonymous*"
Но решили все таки удалять файлы через код. Вот так:
String userHome = System.getProperty("user.home");
File tempFolder = new File(userHome + "\\AppData\\Local\\Temp\\");
File[] filenames = tempFolder.listFiles();
for (File file : filenames) {
System.out.println("Processing file with name: " + file.getName());
if (file.getName().startsWith("anonymous")) { // $anonymous* - FireFox folders
try {
FileUtils.cleanDirectory(file);
System.out.println("Deleting file with name: " + file.getName());
boolean result = file.delete();
System.out.println("File with name: " + file.getName() + " deleted: " + result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Спасибо.
ай, да не за что, всегда рад !)
Ну можно же селениуму один конкретный, специально подготовленный профиль назначить, тогда он не будет плодить лишних сущностей.
А можешь расказать как сделать ?
Чтобы создать отдельный профайл в Фаерфоксе для запуска тестов, нужно запустить Фаерфокс из консоли с этими параметрами:
firefox.exe -ProfileManager -no-remote
Чтобы запустить Селениум Сервер с определенным профилем Фаерфокса:
java -jar selenium-server-standalone-2.15.0.jar -firefoxProfileTemplate "path_to_new_profile"
Да, товарищ katmoon все верно написал.
Я убрал из того профиля все лишнее (autoupdate например) и сохранил в архив. А подключаю все антом:
{syntaxhighlighter brush:xml}
<target name="start-selenium-server" depends="prepareFirefox">
<java jar="lib/selenium-server-standalone-2.12.0.jar" fork="true" spawn="true">
<arg line="-timeout 30" />
<arg line="-port 5555" />
<arg line=" -userExtensions" />
<arg line=" ${basedir}\src\test\user-extensions.js" />
<arg line=" -firefoxProfileTemplate" />
<arg line=" ${firefoxProfileDir}\firefoxProfile" />
<jvmarg value="-Dhttp.proxyHost=proxy.corporate.com" />
<jvmarg value="-Dhttp.proxyPort=3128" />
</java>
</target>
{/syntaxhighlighter}
File profileDir = new File("path/to/top/level/of/profile");
FirefoxProfile profile = new FirefoxProfile(profileDir);
WebDriver driver = new FirefoxDriver(profile);