обрабатывать всплывающее окно безопасности с помощью vbscript (без QTP / Selenium) - PullRequest
0 голосов
/ 26 сентября 2011

Я автоматизирую вход в приложение с помощью vbscript.

Я использую код -

Dim objIE
Set objIE = Wscript.CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "https://portal url"

, после этого появляется всплывающее окно с запросом имени пользователя и пароля.

Я не хочу отключать всплывающее окно.Скорее я хочу иметь возможность ввести в него идентификатор пользователя и пароль.

Я попытался обработать его с помощью

NewWindow3 метода и NewWindow2 метода

, который MSDNпредусмотрел для обработки дополнительных окон (это для разработки, а не для автоматизации, я думаю), но не работает.

`objIE.Document.GetElementByID

также не работает, потому что всплывающее окноup не попадает под объект 'Document'.это входит непосредственно в objIE, но не мог найти что-нибудь, чтобы справиться с этим.

1 Ответ

0 голосов
/ 10 октября 2011

Я использую следующий код для передачи учетных данных в диалог аутентификации Windows. Надеюсь, это поможет.

Dim objIE, objWshShell
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "http://url"
Set objWshShell = WScript.CreateObject("WScript.Shell")
With objWshShell
    WScript.Sleep 100
    .SendKeys "myusername" 'Focused by Default - Username
    WScript.Sleep 100
    .SendKeys "{TAB}" 'Skip To Password Field
    WScript.Sleep(100)
    .SendKeys "mypassword" 'Password     
    WScript.Sleep 100
    .SendKeys "{TAB}" 'Skip To "Remember Me" Checkbox
    WScript.Sleep 100
    .SendKeys "{TAB}" 'Skip To Submit Button
    WScript.Sleep 100
    .SendKeys "{ENTER}" 'GO
End With
Set objWshShell = Nothing
Set objIE = Nothing
...