3

В настоящее время я пытаюсь запустить некоторые тесты для веб-приложения, используя Selenium IDE с Firefox 14. Тесты состоят в основном из загрузки страницы, содержащей тысячи ссылок, и нажатия на каждую из этих ссылок. Конечно, каждый раз, когда появляется всплывающее окно, я говорю Selenium закрыть его и перейти к оставшимся ссылкам.

Однако, похоже, что даже если я закрою всплывающие окна, Firefox не освобождает память. Обычно я заканчиваю сбоем Firefox после открытия 1500 всплывающих окон (около 2,5 ГБ использования памяти).

Есть ли способ заставить браузер освободить память? Может быть, что-то, что я должен установить в:config? Или есть недостаток с селеном?

Благодарю.

2 ответа2

0

Эта проблема связана с сборкой мусора в Firefox, и вы ничего не можете с этим поделать. Отключение JavaScript на вкладках, которые вы открываете (если возможно), может помочь, так как будет меньше утечек памяти JS. Эти утечки могут быть особенно проблематичными с ошибочными надстройками, поэтому я бы порекомендовал вам выполнять тесты в безопасном режиме (отключить все расширения) или использовать Google Chrome - который не страдает от утечек памяти в той же степени, что и Firefox, так как он разделяет каждую вкладку в отдельный процесс, хотя, похоже, не работает так же плавно, как Firefox при работе с большим количеством открытых вкладок.

0

Хотя это довольно экстремальный вариант использования, тот факт, что Firefox падает, не очень хорош.

Вы работаете с чистым профилем, т.е. все расширения отключены? Расширения могут резервироваться и зависать в памяти при каждой загрузке страницы; это общий источник утечек. Я полагаю, что Firefox 15 (который выпускается сегодня) имеет общее исправление для расширений, делающих это, так что, возможно, стоит обновить и посмотреть, если проблема все еще возникает. Вот диаграмма Extremetech по этому вопросу:

Диаграмма Extremetech, показывающая, что потребление памяти значительно улучшилось в Firefox 15.

Кроме того, about:memory имеет кнопку « Minimize memory usage , которая пытается освободить зарезервированную, но в настоящее время неиспользуемую память. Может ли быть сценарий Selenium для навигации там и нажмите кнопку?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .