如果我尝试从chrome浏览器本地选择文件夹中的文件,则下面的AutoIT代码可以很好地工作。如果浏览器是IE11,则相同的代码将不起作用。我确实尝试通过传递标题“选择文件上传”的方法,但是最终出现了同样的问题。不确定为什么相同的代码在chrome和IE11之间的行为会有所不同。
Chrome版本:-67.0.3396.87 IE:11 Autoit:3.5.4
AutoIT:-
$doubleQuotes=""""
$title=WinGetTitle("[ACTIVE]")
WinWaitActive($title)
ControlFocus($title,"","Edit1")
ControlSetText($title,"","Edit1",$CmdLine[1])
Sleep(900)
ControlClick($title,"","Button1")
Sleep(300)
ControlSetText($title,"","Edit1",$doubleQuotes& $CmdLine[2]& $doubleQuotes)
Sleep(300)
ControlClick($title,"","Button1")
Java:-
package HybridFrameWork;
import java.io.File;
import java.util.ArrayList;
public class AutoIT {
public static void Fileselection(String total, String folderpath) throws Throwable {
ArrayList<String> List = new ArrayList<String>();
String doublequotes = "\"";
String Filelist = "";
String backslash = "\"\"";
if (folderpath.equalsIgnoreCase("Image")) {
GlobalVariable.setFileLocation(ReadProperties.GetConfig("ImageFolder"));
}
File path = new File(GlobalVariable.getFileLocation());
File[] files = path.listFiles();
for (File f : files) {
List.add(String.valueOf(f.getName()));
}
for (int j = 1; j <= Integer.parseInt(total); j++) {
Filelist = Filelist + backslash + doublequotes + List.get(j - 1) + doublequotes;
}
ProcessBuilder build = new ProcessBuilder(ReadProperties.GetConfig("AutoIT.ToSelectFiles"),
GlobalVariable.getFileLocation(), Filelist);
build.start();
}
}