Java 下载文件时,如何单击并处理IE中弹出的对话框窗口?
我想在java中使用SeleniumWebDriver自动化测试。我正在自动下载文件部分,但无法处理在IE中下载时弹出的另存为对话框窗口。通过单击链接,IE显示从弹出窗口保存或打开文件。 首先下载autoit: 将其添加到windows环境变量内的路径,以便可以从命令提示符下执行 示例路径: C:\ProgramFiles(x86)\AutoIt3 下面是一个处理自动it脚本的示例方法Java 下载文件时,如何单击并处理IE中弹出的对话框窗口?,java,selenium,testng,Java,Selenium,Testng,我想在java中使用SeleniumWebDriver自动化测试。我正在自动下载文件部分,但无法处理在IE中下载时弹出的另存为对话框窗口。通过单击链接,IE显示从弹出窗口保存或打开文件。 首先下载autoit: 将其添加到windows环境变量内的路径,以便可以从命令提示符下执行 示例路径: C:\ProgramFiles(x86)\AutoIt3 下面是一个处理自动it脚本的示例方法 public static void saveFileInternetExplorer() throws E
public static void saveFileInternetExplorer() throws Exception {
String pathToAutoItScript = "C:\\save_file_IE11.au3";
String command = "AutoIt3.exe " + pathToAutoItScript;
System.out.println("AutoIt command: " + command );
String output = new CommandLine(command).executeGetOutput();
if (output.contains("ERROR")) {
throw new Exception("AutoIt script error: " + output);
}
System.out.println(output);
}
在IE 11中保存文件的AutoIt脚本
- 保存文件\u IE11.au3
单击下载按钮后,运行autoit3脚本,这将保存文件
祝你好运 我认为这个对话框可能算作“弹出窗口”,这意味着你可能必须切换窗口并“处理”弹出窗口,因为它不是实际网页本身的一部分。任何用来处理弹出窗口的东西都可能是解决这个问题的方法。我不认为你能从xpath得到它。这里简单介绍的方法可能是一个值得尝试的好方法。
public static void saveFileInternetExplorer() throws Exception {
String pathToAutoItScript = "C:\\save_file_IE11.au3";
String command = "AutoIt3.exe " + pathToAutoItScript;
System.out.println("AutoIt command: " + command );
String output = new CommandLine(command).executeGetOutput();
if (output.contains("ERROR")) {
throw new Exception("AutoIt script error: " + output);
}
System.out.println(output);
}
Sleep(5000)
Local $hIE = WinGetHandle("[Class:IEFrame]")
Local $hCtrl = ControlGetHandle($hIE, "", "[ClassNN:DirectUIHWND1]")
If WinExists($hIE,"") Then
WinActivate($hIE,"")
ControlSend($hIE ,"",$hCtrl,"{F6}") ; Gives focus to Open Button
Sleep(500)
ControlSend($hIE ,"",$hCtrl,"{TAB}") ; Gives focus to Save Button
Sleep(500)
ControlSend($hIE ,"",$hCtrl,"{enter}") ; Submit whatever control has focus
EndIf
Sleep(3000)