在Eclipse中运行Autoit代码时,我遇到了一个奇怪的问题。
我在编译以下代码以在Windows弹出窗口中上传文本文件后创建了一个exe文件
如果在窗口屏幕处于活动状态时在命令提示符下手动运行此exe文件 文件已成功上传到应用程序
如果通过eclipse运行,则使用相同的exe代码,可以看到按下了按钮,窗口消失了(没有文件上传)
我尝试将第4行更改为send(“ {ENTER}”)仍然没有运气
1.WinWaitActive("Open") //Open is the window name
2.Send("C:\Users\AB\Desktop\sampleupload.txt",@SW_SHOWNORMAL) //this works in eclipse
3.WinWaitActive("Open")//this works
4.ControlClick("Open","","Button1") //Button clicked correctly
Runtime.getRuntime().exec("filesend.exe")//code used in eclipse to run the autoit exe file
执行exe文件后应立即上传文件,但窗口消失且没有文件上传。仅通过eclipse运行会出现问题
答案 0 :(得分:0)
嗨,请尝试使用提升的权限(例如,管理员)运行filesend.exe
Runtime.exec("runas /user:adminUser filesend.exe");
答案 1 :(得分:0)
我有一个建议,不要使用autoit的exe。您可以使用java或python使用autoit库。
下面是带有autoit的Java示例:
File file = new File("lib", "jacob-1.15-M4-x64.dll"); //path to the jacob dll
System.setProperty(LibraryLoader.JACOB_DLL_PATH, file.getAbsolutePath());
AutoItX x = new AutoItX();
String notepad = "Untitled - Notepad";
String testString = "this is a test.";
x.run("notepad.exe");
x.winActivate(notepad);
x.winWaitActive(notepad);
x.send(testString);
Assert.assertTrue(x.winExists(notepad, testString));
x.winClose(notepad, testString);
x.winWaitActive("Notepad");
x.send("{ALT}n");
Assert.assertFalse(x.winExists(notepad, testString));
有关设置,您可以参考以下链接:
https://www.joecolantonio.com/selenium-autoit/
如果您想将python与autoit和selenium一起使用,可以很容易地实现,我在下面的博客中写道:
http://jbanshpal.blogspot.com/2018/02/first-basic-setup-and-example.html
请告诉我是否有帮助。