如何在selenium中暂停脚本直到您的Autoit脚本完成?

时间:2016-07-27 06:23:26

标签: eclipse selenium selenium-webdriver testng autoit

我希望Selenium等到直到除非自动脚本完成。

现在发生的事情是当我运行TestNG.xml文件时,它会在5秒内运行所有@Test Priority,并在5秒内输出控制台显示所有@Test都已通过。 虽然我的AutoIT脚本仍然在后台并行运行。

守则如下:

@Test (priority=1)
public void CreateNew() throws Exception
{       
    Runtime.getRuntime().exec("exeFiles\\CreateNew.exe");       
}

@Test (priority=2)
public void OpenaFile() throws Exception
{
        Runtime.getRuntime().exec("exeFiles\\OpenaFile.exe");
}

AutoIt文件代码如下:

createnew()

Func createnew()
    Sleep(2000)
    Run("Mspaint.exe")
    WinWaitActive("Untitled - Paint")
    Send("!f")
    Sleep(1000)
    Send("n")
    Sleep(2000)
    WinClose("Untitled - Paint")
EndFunc   ;==>createnew

1 个答案:

答案 0 :(得分:2)

您需要为AutoIt创建一个新流程并等待该流程完成。请看下面的例子。

@Test (priority=1)
 public void CreateNew() throws Exception
 {       
   Process p =Runtime.getRuntime().exec("exeFiles\\CreateNew.exe");   
   p.waitFor(); 
 }

 @Test (priority=2)
 public void OpenaFile() throws Exception
 {
    Process p = Runtime.getRuntime().exec("exeFiles\\OpenaFile.exe");
    p.waitFor();
 }

p.waitFor()将使当前的Thread等待进程。