如何在selenium中自动执行cmd提示符和vb实用程序文件中的命令



我的应用程序具有注册客户、注册卡(针对添加的客户)、注册优惠等功能。

所有的东西要么我可以从前端浏览器一个接一个地找到一个客户,要么一张接一张地卡片等等。

我们已经通过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/

  1. 下载Jacob,AutoIT(请参阅上面的链接)
  2. 将jacob.jar和autoitx4java.jar添加到库路径中
  3. 将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部分的自动化。

最新更新