问题描述
我正在 Windows 上开发 sikulixide-2.0.5。现在我想利用用户属性写/读函数来实现应用程序参数的持久化,以便我学习作为参考所示的部分:https://sikulix-2014.readthedocs.io/en/latest/globals.html#saveOpts
问题是,无论我调用任何具有 Opt 修复术语的持久性相关 API,例如 makeOpts() ,引擎都会在出现错误后继续回答我,我如何使其工作?
[error] AttributeError ( 'org.sikuli.script.support.RunTime' 对象有 没有属性 'makeOpts' )
from sikuli import *
def trialOpts():
obj = makeOpts()
return
trialOpts()
相比之下,其他 API 像 click(),find() 在没有 AttributeError 消息的情况下运行良好,这意味着 Sikuli 的主引擎正在正常运行。
既然这些是 Sikuli 的原生 API,根据我的理解,它应该不必导入任何模块吗?为了确保这一点,我研究了 Github 上 Sikuli 的位源代码,带有术语 Opt 的 API 在 Sikuli.py 中精确定义:
到目前为止,我的线索已经不多了。请你帮忙。
解决方法
我再次查看了最新发布的代码,并且有其他可用的首选项处理方法(请参阅:org.sikuli.basics.PreferencesUser)
from sikuli import *
from org.sikuli.basics import PreferencesUser
def trialOpts():
obj = PreferencesUser.get()
obj.put("foo","bar")
print obj.get("foo","bart")
return
trialOpts()
,
那些“*Opts”便利方法在 2.0.5 版本中似乎不存在。看起来它们被重构不复存在。
要查看这些方法的作用(并可能在 jython 中重新创建它们),请参阅:
https://www.javatips.net/api/SikuliX-2014-master/API/src/main/java/org/sikuli/script/RunTime.java
另外,如果你拉一个 pre-2.0.0 标签,看起来 github 项目有代码: