Я использовал CasperJS и у него есть метод .download(). Думаю в PhantomJS есть что-то подобное. Когда открывается окно отдающее файл, браузер должен делать запрос на сервер по определенной ссылке. Эту ссылку и нужно передать в метод .download(), если он есть.
Не было такой задачи, но можно попробовать вот так: ловим событие onPageCreated, берем url страницы и через wget скачиваем файл. Вопрос по теме на stackoverflow