如何使用Sikuli终止应用程序

问题描述 投票:0回答:3

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

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

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

java automated-tests sikuli
3个回答
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();
  }

0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.