Что нового

[Автоматизация] Сохранение файла из IE, не имея явной ссылки на него.

SlavaS

Знающий
Сообщения
35
Репутация
5
День добрый всем, подскажите пожалуйста,

Есть сайт с заполнением запроса с формой, после ее заполнения появляется ссылка на результат, такого вида
Код:
<A onclick="document.getElementById('printable').click(); return(false);" href="https://сайт.ru/products/ReportPdfResponseServlet?printable=1" target=_download>&gt;&gt; Результаты для печати (PDF) </A>
при нажатии на эту ссылку сразу выводится диалоговое окно на сохранение файла.

Так вот возможно как то перехватить этот файл мимо диалогового окна или автоматизировать процесс сохранения файла? Не могу даже понять от чего отталкиваться ???. Может кто сталкивался?

Сразу извиняюсь, сайт привести не могу, т.к. туда все равно доступ по логину и паролю, чего я дать не могу. Похожий сайт тоже в голову не приходит (не встречал таких).
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
SlavaS [?]
возможно как то перехватить этот файл мимо диалогового окна
Возможно.
Примеров как получить адрес ссылки и скачать документ на форуме много, поищите.
 
Автор
S

SlavaS

Знающий
Сообщения
35
Репутация
5
Примеров как получить адрес ссылки и скачать документ на форуме много, поищите.
В том то и дело что перед тем как создать тему, я проштудировал весь раздел с IE, и ни чего похожего не нашел. :(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
SlavaS [?]
Есть сайт с заполнением запроса с формой, после ее заполнения появляется ссылка на результат, такого вида
Вы что-то уже написали (код) для достижения поставленной задачи? Если да выкладывайте, посмотрим.
 
Автор
S

SlavaS

Знающий
Сообщения
35
Репутация
5
Вот кусок кода от заполнения самой формы и до вывода диалога сохранения файла
Код:
$oOrderForm = _IEFormGetObjByName($oIE, "orderForm") ;получаем объект формы

;далее идет заполнение формы
$oSelect = _IEFormElementGetObjByName($oOrderForm, "primaryType")
_IEFormElementOptionSelect($oSelectNBKI, 21, 1, "byValue")
$lastName = _IEFormElementGetObjByName($oOrderForm, "lastName")
_IEFormElementSetValue($lastName, StringUpper(GUICtrlRead($sLastName)))
$firstName = _IEFormElementGetObjByName($oOrderForm, "firstName")
_IEFormElementSetValue($firstName, StringUpper(GUICtrlRead($sFirstName)))
$paternalName = _IEFormElementGetObjByName($oOrderForm, "paternalName")
_IEFormElementSetValue($paternalName, StringUpper(GUICtrlRead($sMidleName)))
;и т.д.

$oSubmit = _IEFormElementGetObjByName($oOrderForm, "submit") ;нажимаем на кнопку запроса
_IEAction($oSubmit, "click")

_IELoadWait($oIE, 500);ждем ответа

;ищем ссылку для скачивания 
$oLinks = _IELinkGetCollection($oIE)
For $oLink In $oLinks
If StringInStr($oLink.href, "ReportPdfResponseServlet?printable=1") > 0 Then 
	_IELinkClickByText($oIE, $oLink.innertext);кликаем по ней
EndIf
Next
;при нажатии на эту ссылку, на доли секунды открывается новое окно IE и сразу же закрывается (моргнуло и все), т.е. я так понял что генерируется ответ в PDF, 
_IELoadWait($oIE, 500);ждем ответа

;появляется диалог для сохранения файла
_IEAction($oIE, "visible");делаем видимым окно с IE, чтобы вручную сохранить файл.
 
Верх