JavaでSeleniumWebdriverを使用してテストケースを自動化しようとしています。これには、基本認証ダイアログが含まれます。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