我的应用程序具有注册客户、注册卡(针对添加的客户)、注册优惠等功能。
所有的东西要么我可以从前端浏览器一个接一个地找到一个客户,要么一张接一张地卡片等等。
我们已经通过Selenium实现了这些自动化。现在有一个为它创建的实用程序(vbscript)(UI模式和非UI模式)。通过在实用程序中提供txt文件(txt文件应包含所有客户详细信息)作为输入文件,您可以添加n个客户/卡/优惠,或者通过命令提示符(非UI)使用实用程序名称和文件名运行实用程序。。
现在我需要编写一个代码来打开实用程序文件并导入txt文件,以及在cmd提示符中输入命令并运行此命令,然后转到应用程序(在浏览器中)验证是否已添加所有内容?
我知道硒可以帮助你自动化浏览器端,这是有限制的,但我听说有AutoIt可以做到这一点。如果在java中有一种方法也可以。。
有人知道我们能做到这一点吗??
Selenium可以用于自动化web浏览器的部件,而AutoIT应该用于自动化Windows应用程序。
此链接提供了有关如何将AutoIT与Selenium一起使用的良好信息:http://www.toolsqa.com/selenium-webdriver/autoit-selenium-webdriver/
以下是你必须做的:
下载/安装AutoIT
您将能够使用AutoITSciTe编辑器创建.au3脚本编译.au3脚本会得到一个.exe文件然后,您可以使用从Selenium脚本中调用.exe文件
Runtime.getRuntime().exec("D:AutoItAutoItTest.exe");
您可以使用AutoIT窗口信息(x86)或(x64)获取窗口的属性。例如,窗口的标题/状态栏。
AutoIT还具有Au3记录器,以便您可以记录与远程桌面相关的操作。
下面是一个自动化Http身份验证的示例脚本:
WinWaitActive("Web page title","","10")
If WinExists("Web page title") Then
Send("userid{TAB}")
Send("password{Enter}")
EndIf
以下脚本获取记事本状态栏中的文本:
WinWaitActive("Untitled - Notepad", "", 30)
Local $hWnd = WinGetHandle("Untitled - Notepad")
Local $sText = StatusbarGetText("Untitled - Notepad","",2)
ConsoleWrite($sText)
我希望这些信息能有所帮助!
由于您正在寻找Java解决方案:尝试AutoITx4Java-https://code.google.com/p/autoitx4java/
- 下载Jacob,AutoIT(请参阅上面的链接)
- 将jacob.jar和autoitx4java.jar添加到库路径中
- 将jacob-1.15-M4-x64.dll文件放在库路径中
样本代码
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));
我真的不清楚你的问题。但据我所知,您可以从cmd提示符运行您的实用程序,也可以从java代码中执行。请检查此答案
正如您所指出的,您可以使用autoit或sikuli来实现ui部分的自动化。