我在XCTest中编写了一个可以成功执行AppleScript的函数,但是在执行期间脚本无法访问任何应用程序。
这是我的AppleScript之一,我正在尝试运行:
tell application "System Events"
set appProcessNames to the name of every application process
end tell
以下是执行AppleScipt的函数:
private func runAppleScript(scriptURL: URL) -> String? {
var errorInfo:NSDictionary?
if let script = NSAppleScript(contentsOf: scriptURL, error: &errorInfo) {
let result = script.executeAndReturnError(&errorInfo)
if result.stringValue != nil {
return result.stringValue!
} else {
return "\(errorInfo!)"
}
}
return nil
}
但是,我从NSAppleScript得到的响应是:
NSAppleScriptErrorAppName = "System Events";
NSAppleScriptErrorBriefMessage = "Application isn\U2019t running.";
NSAppleScriptErrorMessage = "System Events got an error: Application isn\U2019t running.";
NSAppleScriptErrorNumber = "-600";
NSAppleScriptErrorRange = "NSRange: {0, 0}";
环境条件:
编辑: 显然,由于我正在执行UI测试,因此无论如何都将应用程序沙盒化。将AppleScript与XCTest集成的解决方法是使用NSUserAppleScriptTask而不是NSAppleScript。