检查是否已使用Sikuli打开应用程序

时间:2019-02-25 15:52:09

标签: javascript python jython sikuli

我正在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

1 个答案:

答案 0 :(得分: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中使用它。