如何使用Sikuli终止应用程序

时间:2019-03-14 10:15:07

标签: java automated-tests sikuli

如何使用Sikuli框架终止应用程序?现在,我正在使用这种结构将其关闭:

App app = new App(pathToApplication);
amm.open();
//some actions
app.close();

但是它不起作用,并且应用程序没有关闭。而且我需要一些解决方案来关闭@AfterTest方法中的分配,即使测试失败也可以关闭它。

3 个答案:

答案 0 :(得分:0)

我建议您使用app.closeByKey(),它会尝试使应用程序排在前面,然后使用系统特定的组合键(Alt-F4,cmd-Q,ctrl-Q)正常关闭应用程序,可能并非总是使用普通的app.close()即可完成。

在此处阅读文档 https://sikulix-2014.readthedocs.io/en/latest/appclass.html#App

它可以从版本Sikulix 1.1.0中获得。下面是它的Maven依赖项

<!-- https://mvnrepository.com/artifact/com.sikulix/sikulixapi -->
<dependency>
  <groupId>com.sikulix</groupId>
  <artifactId>sikulixapi</artifactId>
  <version>1.1.4-SNAPSHOT</version>
</dependency>

以下是关闭应用程序的另一种方法,直到获得1.1.4的稳定版本:

app.focus();
type(Key.F4, Key.ALT); ----> For WINDOWS
type("q", Key.CMD); ----> For MAC
type("q", Key.CTRL);-----> For LINUX

如果要关闭所有打开的应用程序,请使用以下代码:

for (App app : App.getApps()) {
     app.closeByKey();
  }

答案 1 :(得分:0)

如果被测试的应用程序仍然具有焦点(可能已经具有焦点),则只需发送:

 type(Key.F4, KeyModifier.ALT)

答案 2 :(得分:0)

您可以将整个应用程序包装在try ... catch语句中。只需将代码放在您的主脚本中即可:

try {
    // Your code goes here
    app.close();
}
catch (Exception e) {
    app.close();
    exit();
}

在发生任何异常错误时,您的脚本将打印该消息,并在关闭已测试的应用程序后正常退出。