我有一些代码在屏幕键盘上查找指定的键,并在找到时单击它。我遇到了一个问题,有时Exists
属性不存在,而且它正在崩溃我的测试。
function findKey(propertyName, character, shiftMode) {
var keyboard = getKeyboard()
var key = keyboard.findChild(propertyName, character, 2)
if (key.Exists) { // Crashes on this line.
keyboard.set_ShiftMode(shiftMode)
key.Click()
return true
}
return false
}
真正疯狂的是,当我在该行添加一个断点并在检查员中检查它时,Locals检查器具有该属性,但Watch List表示它不存在。此外,这不是超级一致的。到目前为止,它发生在字符串中的第一个或第二个字符上。
当地人
观察名单
错误日志
什么可能导致该属性在代码的某些情况下不存在?我认为Exists
is always on anything returned由findChild
专门,所以你可以知道是否有任何返回。
那么使用Visible或VisibleOnScreen属性呢?
此外,您应该尝试记录到KeyWord Test,然后将其转换为脚本。