Я пытаюсь автоматизировать свои тестовые примеры, используя selenium webdriver в java. Он включает в себя базовые диалоги аутентификации. Чтобы сделать IE, Chrome, FF совместимым с использованием того же подхода, я должен использовать AutoIT. Я закончил с IE и FF, но для Chrome это не работает. Я использую инструмент AutoIT Window Info
для определения имени класса и элемента управления. Но Chrome совсем другой, в этом случае кто-нибудь может помочь?
Вот код для работы IE и FF
$classForBasicAuthenticationWindow = "[CLASS:#32770]"
$username = "XXXXXX"
$password = "XXXXXX"
WinWait($classForBasicAuthenticationWindow,"",120)
If WinExists($classForBasicAuthenticationWindow) Then
WinActivate($classForBasicAuthenticationWindow)
Send($username)
Send("{TAB}")
Send($password & "{Enter}")
EndIf
Это похоже на FF, выше для IE
Для Chrome я написал это до сих пор, если вы рассмотрите инструмент window info
, вы поймете, что всплывающее окно не является другим окном в случае Chrome. Так что это становится немного сложным. В любом случае, вот что я пробовал:
$classForBasicAuthenticationWindow = "[CLASS:Chrome_WidgetWin_1]"
$username = "XXXXX"
$password = "XXXXX"
WinWait($classForBasicAuthenticationWindow,"",120)
If WinExists($classForBasicAuthenticationWindow) Then
WinActivate($classForBasicAuthenticationWindow)
While 1
$isAuthenticationRequiredVisible = ControlGetHandle($classForBasicAuthenticationWindow, "", "[CLASS:ViewsTextfieldEdit; INSTANCE:2]")
If $isAuthenticationRequiredVisible <> "" Then
MsgBox($isAuthenticationRequiredVisible)
ExitLoop
EndIf
WEnd
ControlSend($classForBasicAuthenticationWindow, "", "[CLASS:ViewsTextfieldEdit; INSTANCE:2]", $username)
EndIf