2016-08-31 2 views
0

Я пытаюсь загрузить журнал, заполненный диапазоном дат, поэтому я заполняю форму с датами, которые я хочу, а затем, когда вы нажимаете кнопку «Экспорт журналов вызовов», она просто автоматически запускает загрузку файла CSV в обычном браузер.Как сохранить файл, вызванный нажатием кнопки в CasperJS?

Как сохранить этот файл, который должен быть автоматически активирован при нажатии на эту кнопку с помощью Casper?

casper.then(function(){ 
    console.log("Filling out form and getting CSV"); 
    this.evaluate(function(){ 
     document.getElementsByName("startdate")[0].value="08/30/2016"; 
     document.getElementsByName("enddate")[0].value="08/30/2016"; 
     document.getElementsByName("s1")[0].click(); 
    }); 
}); 

Кнопка HTML выглядит следующим образом:

<td><input type="submit" name="s1" value="Export Call Logs"></td> 

Кроме того, как примечание стороны, очевидно, что я не хочу, чтобы вручную ввести дату, своего рода поражения точку программы таким образом, , Я больше всего знаком с Pyhon, это их эквивалент модулю DateTime или каким-то образом я могу использовать Casper для получения даты предыдущих дней и сохранения как Var для ввода соответственно? i.e todays date is 08/31/2016 Я хотел бы ввести предыдущий день, 30.08.2016.

EDIT: Прокомментировал нижеследующее описание example.

casper.then(function(){ 
    console.log("Filling out form and getting CSV"); 
    this.page.onFileDownload = function(status){console.log("onFileDownload(' + status + ')"); 
    return "downloadedfile.csv"; }; 
    this.evaluate(function(){ 
     document.getElementsByName("startdate")[0].value="08/30/2016"; 
     document.getElementsByName("enddate")[0].value="08/30/2016"; 
     document.getElementsByName("s1")[0].click(); 
    }); 
}); 
+0

Обратный вызов 'page.onFileDownload' доступен только в неофициальной версии PhantomJS, но это единственный разумный способ сделать это. –

ответ

0

Вы можете попробовать функцию загрузки(), вы можете найти более подробную информацию here.

Существует example.

+0

Я видел это, но я смущен из-за того, что в функции загрузки нет URL-адреса. Я попробовал пример, который вы опубликовали, но не знаю, правильно ли я его реализовал. Можете ли вы проверить мой OP для редактирования, чтобы убедиться, что он выглядит правильно? – Mxracer888

+0

Если вы используете форму «отправить», должен существовать один целевой URL. Проверьте исходный код вашей сгенерированной страницы в браузере, найдите форму вокруг кнопки «Отправить», вы найдете «URL-адрес действия» формы. Если возможно, вы можете показать мне свою страницу тестирования. – Sphinx

+0

После некоторого рытья я смог его найти. теперь функция загрузки работает! Благодаря! – Mxracer888

Смежные вопросы