尝试使用集成的Robot Framework运行Sikuli脚本,在GUI上自动测试程序 .
该程序在单独的进程中有大量的窗口 . Sikuli有一个本机App()命令可以帮助跟踪它们,但App()调用需要花费不可忽视的时间来执行 . 出于这个原因,我在启动时创建一个App()对象的字典,以便稍后引用 . 以下代码仅供参考,以显示结构,而不是完整或实际代码 .
示例代码:
class myLib(object):
def startProgram(self):
self.program = Program(args)
self.program.start()
self.program.createAppDictionary()
def doSomething(self, area)
self.program.dictionary['a'].click(area)
class Program(object):
def createAppDictionary(self):
for key, obj in dict(self.config.items('Section')).items():
self.dictionary[obj] = App(obj)
机器人框架测试文件:
***Settings***
Library myLib
Suite Setup Start Program
***Test Cases***
Do Stuff
Do Something Here
Do Something There
上述操作因属性错误而失败 - 'str'没有属性'dictionary',因为程序已从对象转换为字符串 . 进行小的更改并将myLib作为sikuli脚本运行正常 .
有没有办法让设置中创建的对象通过测试用例在python代码中持久存在?我唯一的选择是将它们全部创建为变量,然后将它们传递给每个测试用例中的方法调用吗?
在“机器人用户指南”中进行了大量搜索,但未涵盖此方案 . 感谢任何帮助!