Что нового

Всплывающее окно закрывается сразу после открытия.

nikitian

Новичок
Сообщения
1
Репутация
0
Скрипт работает через библиотеку IE открывает сайт, авторизуется, переходит на внутреннюю страницу и там есть ссылка-кнопка, клик по которой открывает всплывающее окно с этой же самой страницей, которое вызывает скачивание файла. Т.е. порядок действий пользователя: клик, появилось всплывающее окно и тут же диалог сохранения файла. Выбор места для сохранения - всплывающее окно закрылось, файл скачался. К сожалению, собранный код делает немного не так, как ожидаю: клик проходит, всплывающее окно (для домена ранее разрешил всплывающие окна) появляется и тут же пропадает. (Если после этого при работающем скрипте кликнуть самому по кнопке - окно откроется, предложит сохранить файл). Диалог сохранения файла не появляется, ловушка этого диалога WinWait ("File Download", "Do you want to save") продолжает висеть и ждать то, не знаю чего.
Винда англоязычная, тексты в диалогах и заголовках соответствуют. Код частично взят из подобной темы сохранения файла.
Код:
;Клик по кнопке скачивания
	  $oLinks = _IETagNameGetCollection($o_ie, 'a')
	  $i=0
	  For $oLink in $oLinks
		 If StringInStr($oLink.innerHTML,"Download full statement") Then
			_IELinkClickByIndex ($o_ie, $i)
			ExitLoop
		 EndIf
		 $i=$i+1
	  Next
	  _IELoadWait ($o_ie)
	  Sleep(1000)
	  ;Сохранение полученного файла
;Дальше этой строчки не идёт
	  WinWait ("File Download", "Do you want to save")
	  Sleep(1000)
	  ControlClick("File Download", "Do you want to save", '[CLASS:Button; INSTANCE:2]')
	  Sleep(1000)
	  $sText = ControlGetText ( "Save As", "Desktop", '[CLASS:Edit; INSTANCE:1]' )
	  MsgBox(0, "Error", $sText)
 	  Sleep(1000)
	  ControlSetText("Save As", "Desktop", '[CLASS:Edit; INSTANCE:1]', @ScriptDir &"\pdfs\"&$sText)
	  Sleep(1000)
	  ControlClick("Save As", "Desktop", '[CLASS:Button; INSTANCE:2]')
	  Sleep(1000)
	  WinWaitClose("САЙТ","Estimated") ;Есть подозрение, что тут первый параметр должен быть другим, но это лишь подозрения.
	  Sleep(1000)
	  WinWait ( "Download complete" , "Download complete", 2 )
	  If WinExists( "Download complete" , "Download complete") Then
		 ControlClick("Download complete" , "Download complete", '[CLASS:Button; INSTANCE:4]')
	  EndIf
	  MsgBox(0, "Error", "Файл сохранён")

Первый вечер изучаю язык, всё больше разбирался на примерах.
Заранее благодарен за помощь.
 
Верх