【问题标题】:Checking if an application is already open with Sikuli使用 Sikuli 检查应用程序是否已打开
【发布时间】:2019-07-19 01:56:02
【问题描述】:

我正在 Sikuli 中创建一个用于自动化测试的脚本,但遇到了一个我似乎无法找到解决方法的基本问题。

我遇到的问题是我正在尝试为我正在处理的脚本使用 2 个不同的应用程序。确切地说,如果应用程序已经打开,程序将无法专注于它们并尝试运行到接下来的几行

我已阅读了 Sikuli 在线提供的有限文档,并看到了许多其他类似的问题,但我无法应用其中任何一个来解决此问题。

代码:

appone = App("C:\Program Files (x86)\appone.exe")
apptwo = App("C:\Program Files (x86)\apptwo.exe")

if(appone.isRunning(3)):
    appone.focus()
else:
    appone.open()

if(apptwo.isRunning(3)):
    #do nothing#
else:
    apptwo.open()

wait(5)

click("image.png")

我尝试使用图像识别来检查窗口的任务栏,以查看应用程序是否正在运行,但也会抛出其他错误。

Appone 是我使用 Sikuli 运行的主要应用程序,而 apptwo 是一个辅助应用程序,需要运行 appone 才能完成我需要它做的事情。

解决此问题的最佳方法是什么?

编辑:我找到了一个很好的解决方案,我根据这个线程的答案进行了调整以适应我的情况:Check if Window is already exist , then make the window as active else open

【问题讨论】:

    标签: javascript python jython sikuli


    【解决方案1】:

    我猜问题可能出在您使用应用程序 .exe 位置来确定应用程序是否正在运行时。如果您使用窗口标题来检查应用程序是否正在运行而不是 .exe 路径,您能否尝试检查是否同样有效。请在下面找到一个示例:

    if(App("Untitled - Notepad").isRunning() == True):
      print "App found!"
      App("Untitled - Notepad").focus()
    else:
      print "App not found!"
      App.open("Notepad.exe").focus()
    

    另外,如果您想知道的话,我可以在 Sikuli 1.1.4 中使用它。

    【讨论】:

    • 我正在使用 1.1.3,因为我的工作尚未批准更新。不过,这很有帮助。我现在的问题是版本标签也在标题中,并且更新频繁出现,继续返回并替换此脚本中的字符串太麻烦了。您知道这是否可能仅适用于窗口标题的一部分?
    • 继续玩一些Sikuli,看来如果你使用应用程序的进程名,它会像使用窗口标题一样工作,但更健壮。
    • 这是个好消息...很高兴听到您解决了问题。 :)
    猜你喜欢
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多