如何使用 Sikuli 终止应用程序

How to terminate Application with using Sikuli

如何使用Sikuli框架终止应用程序?现在我正在使用这样的结构来关闭它:

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

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

我建议您使用 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();
  }

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

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

在出现任何异常错误时,您的脚本将打印消息并优雅地退出并关闭测试的应用程序。