Как обрабатывать диалог загрузки IE с VB Script? - PullRequest
0 голосов
/ 29 апреля 2011

как автоматически сохранить файл в определенном месте, используя VB Script?

или Как можно загрузить файл в определенное место в IE, не взаимодействуя с диалогом загрузки?

В конечном итоге мне нужно автоматически сохранить файл в определенном месте из IE.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2011

Что мы делаем для файловых диалогов с нашими тестами селена, так это для использования AutoIt , бесплатного инструмента сценариев, который создает исполняемые файлы, которые взаимодействуют с объектной моделью компонентов Windows, включая диалоги сохранения файлов.

Я бы сделал простой сценарий, который сохранит файл в нужном месте, скомпилирует его в исполняемый файл и затем вызовет эту программу в VBScript.

Вот скрипт, который мы используем для загрузки файлов Excel, хотя он может быть немного сложнее, чем вам нужно.

WinWait("File Download", "", 60)
WinActivate("File Download")
IF WinActive("File Download") Then
    Sleep (500)
    SendKeepActive ("File Download")
    Send("!s")
    WinWait("Save As")
    WinActivate("Save As")
    Sleep (500)
    SendKeepActive ("Save As")
    If $CMDLine[0] > 0 Then
        Send($CMDLine[1])
    ELSE
        Send("C:\Windows\Temp\latestAutotestExport.xls")
    ENDIF
    Send("!s")
    Sleep (500)
    If WinActive("Save As") Then
        WinActivate("Save As")
        Sleep (500)
        SendKeepActive ("Save As")
        Send("!y")
        Sleep (15000)
    EndIf
    If WinActive("Download complete") Then
        WinClose("Download complete")
    EndIf
    WinClose("Blank Page - Windows Internet Explorer")
Else
    WinActivate("Microsoft Office Excel")
    IF WinActive("Microsoft Office Excel") Then
        Send("y")
    EndIf
    Sleep(500)
    Send("{F12}")
    If $CMDLine[0] > 0 Then
        Send($CMDLine[1])
    ELSE
        Send("C:\Windows\Temp\latestAutotestExport.xls")
    ENDIF
    Send("!s")
    Send("y")
    Send("!y")
    Send("!y")
    Sleep(5000)
    ProcessClose("EXCEL.EXE")
    Sleep(5000)
    WinClose("Blank Page - Windows Internet Explorer provided by Yahoo!")
EndIF
0 голосов
/ 29 апреля 2011

Принудительная загрузка файлов в Internet Explorer - крайне плохая практика.Это также риск для безопасности.Вот почему нет никаких собственных методов для этого.Можете ли вы предоставить вескую причину для этого?В противном случае я не собираюсь предоставлять решение по причинам, которые я только что изложил.

...