Web UIテストでSeleniumとTestNGフレームワークを使用します。私はクリックしたいファイルダウンロードダイアログボックスを持っていますが、AutoITを使用しています。 AutoITスクリプトはJavaコードから何もしません
は、ここで「オープニング」Opt("WinTitleMatchMode", -2)
If $CmdLine[0] < 2 Then
ConsoleWrite("Usage: " & @ScriptName & " <Opening> <timeout in seconds>" & @CRLF)
Exit(1)
EndIf
; File save dialog is titled "Opening <file>" in Firefox and "File Download" in IE.
$title = WinGetTitle($CmdLine[1]) ; retrives whole window title $timeout = $CmdLine[2]
; wait until dialog box appears
If WinWait($title, "", $timeout) Then ; match the window with substring
;ConsoleWrite("Found File save dialog" & @CRLF)
WinActivate($title)
Send("!S")
ControlClick("Opening", "", "[TEXT:&OK]")
Exit
Else
ConsoleWrite("File save dialog did not appear after " & $timeout & " seconds" & @CRLF)
Exit(2)
EndIf
これは私のJavaコードとはAutoItのexeファイルへのパスがシステムパスに追加されたされ題しFirefoxの金融商品取引法]ダイアログボックスを処理するために私のスクリプトです。しかし、問題は、コードがexeで何もしないように見える、それはその行を実行し、次のものに行くが、ファイルダイアログボックスは認識されなかったかのように残る。
final String type = getWebDriver().getClass().getName();
if (type.toLowerCase().contains("firefox")) {
exe = "SelectFileDialogOptions.exe";
commandLine = exe + " Opening " + 15;
} else {
//handle IE
}
logger.info("Executing the command '" + commandLine + "'...");
try {
final String[] commands = commandLine.split(" ");
Runtime.getRuntime().exec(commands);
} catch (final IOException e) {
throw new WebTestControllerException(
"Caught exception while trying to execute command '"
+ commandLine
+ "'. Exception is: "
+ e.getMessage());
}
'ConsoleWrite()'を 'MsgBox()'に変更して、どれだけ遠くにいるか試してみてください。 –
同様に試しましたが、exeを実行すると同じ結果になりました。手動で試してみると、ファイルダイアログを開いてコマンドラインからAutoITスクリプトを実行すると、ConsoleWrite/Msgboxが表示されているのが見えますが、それでもダイアログボックスは表示されません。おそらく、 – Jai