Applescript Iterate UIElements using Javascript
Applescript Iterate UIElements using Javascript
有人可以帮我制作一个脚本来报告uielement的所有子项及其属性吗?它类似于 wholereContent() 函数。这是我的递归函数。
function iterate(obj) {
for (var property in obj) {
if(obj[property] instanceof Array) {
console.log("Array: " + property + "," +obj[property])
iterate(obj[property])
} else if(obj[property] instanceof Object){
console.log("Object: " + property + ',' + obj[property])
iterate(obj[property])
} else {
console.log("Unknown: " + property +"," + obj[property]);
}
}
}
iterate(app.windows())
我只得到第一级。每个项目下都有一堆 UIElement 和数组。我认为这与Applescript返回对象说明符有关,但与实际对象无关?我不确定如何将对象说明符的名称调用为函数。我尝试了objproperty,obj.property(),eval("obj." + property + "()"),它们都不起作用。我也尝试了迭代(app.windows())[0]
谢谢你的帮助。
我假设您想使用"系统事件"Processes Suite
中的命令。
- 要获取
UIElement
的属性,必须使用以下属性之一:
(可访问性描述,类,描述,启用,全部内容, 聚焦, 帮助, 最大值, 最小值, 名称, 方向, 位置, 角色, 角色描述, 选定, 大小, 子角色, 标题, 值)
- 获取名称的示例:
obj[i].name()
。
要从 UIElement 获取所有 UIE,必须使用obj[i].uiElements()
下面是"文本编辑"过程窗口上的一个示例。
function iterate(obj) {
for (var i in obj) {
if(obj[i] instanceof Array) {
iterate(obj[i])
} else if(obj[i] instanceof Object){
console.log("Object: " + i + ': name = ' + obj[i].name() + ', value = ' + obj[i].value() + ', class = ' + obj[i].class() + ', description = ' + obj[i].description())
iterate(obj[i].uiElements())
}
}
}
var sysEv = Application('System Events')
var app = sysEv.processes['TextEdit']
iterate(app.windows())
相关文章:
- Dropdownlist using javascript
- Twitter api using Javascript
- fetch data from db using javascript & php
- Javascript Object - using jQuery and this
- Googlemaps Javascript API KML layer - Using Open charge map
- MVC3 C# Razorview Printing a PartialView using Javascript
- javascript split() using regEx
- using `@using (html.beginform())` JavaScript is Disabled?
- Using Dashboard APIs or Frameworks using Javascript/JQuery
- sqlite with javascript with phonegap using build.phonegap.co
- Using Prolog with Javascript - Pengines
- Dynamic about: URLs using JavaScript Code Modules (XPCOMUtil
- JavaScript: Using Object.defineProperties()
- Scala code in JavaScript using Scala's '@'
- PHP in Javascript using Wordpress
- Java ScriptEngine for Javascript: using XML
- Javascript: using toLocaleString + Tofixed
- Live Clock Javascript using Symfony2 and Twig
- JavaScript: Using document.write();
- c# 2.0 - JavaScript (using c#)