Итак, у вас есть две проблемы:
- Вам нужно заставить браузер загрузить файл
- Вам нужно измерить, когда загруженный файл будет завершен
Ни одна из проблем не может быть решена напрямую с помощью Selenium (пока - 2.0 может помочь), но обе проблемы решаемы. Первая проблема может быть решена с помощью инструментов автоматизации GUI, таких как AutoIT. Но их также можно решить, просто отправив автоматическое нажатие клавиши на уровне ОС, которое имитирует клавишу ввода (работает для Firefox, немного сложнее в некоторых версиях Chrome и Safari). Если вы используете Java, вы можете использовать Robot для этого. Другие языки имеют аналогичные наборы инструментов для этой цели.
Вторая проблема, вероятно, лучше всего решается с помощью какого-либо прокси-решения. Например, если ваш браузер настроен для прохождения через прокси-сервер, и у этого прокси-сервера есть API, вы можете запросить прокси-сервер с этим API, чтобы узнать, когда сетевая активность закончилась.
Это то, что мы делаем в http://browsermob.com,, который я основал, который использует Selenium для нагрузочного тестирования. Мы выпустили часть прокси-кода с открытым исходным кодом, доступную по адресу http://browsermob.com/tools.
Но две проблемы все еще сохраняются:
- Вам необходимо настроить браузер на использование прокси. В Selenium 2 это проще, но возможно и в Selenium 1. Ключ просто в том, что ваш браузер запускает браузер с нужным профилем / настройками.
- В настоящее время нет API для прокси-сервера BrowserMob, который бы сообщал вам, когда сетевой трафик остановился! Это большая дыра в концепции проекта, которую я хочу исправить, как только у меня будет время. Однако, если вы хотите помочь, присоединитесь к Группе Google, и я определенно могу указать вам верное направление.
Надеюсь, это поможет вам определить ваши различные варианты. Желаем удачи!