我正在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
答案 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中使用它。