我希望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
答案 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等待进程。