文件上传的自动代码在硒中不起作用。Windows输入路径后消失

时间:2019-01-10 15:00:24

标签: eclipse selenium autoit

在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运行会出现问题

2 个答案:

答案 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

请告诉我是否有帮助。