【发布时间】:2020-07-12 08:37:59
【问题描述】:
当你打开一个终端或 iTerm 窗口时,你会看到一个类似的字符串
Last login: Fri Jul 10 00:00:00 on ttys000
(base) my_username@my_hostname ~ %
我希望能够将此字符串读入 JXA 中的变量中。
这是我到现在为止的距离。
1。无障碍检查员
通过 Accessibility Inspector,我发现了导致我正在寻找的字符串的 UI 元素的层次结构。
2。界面浏览器
我使用 UI 浏览器在层次结构中导航并获取 Apple 脚本代码来访问元素;但我需要 JXA 代码。
3。翻译成代码
为了尝试使用 JXA 访问上述 UI 层次结构,我首先启用了 Safari JavaScript 调试器as explained here 然后我编写了这段代码来调用调试器:
i_term = Application('iTerm')
i_term.quit()
i_term.activate()
delay(0.2)
debugger
现在,在调试器的控制台中,我尝试使用第一个代码 sn -p from this answer 中所示的相同变量命名来访问对象,即
i_term.windows()[0].groups()[0].splitterGroups()[0].scrollAreas()[0]
此时我有两个问题:
- 我实际上不知道我尝试访问的对象是否存在,因为在控制台中我得到了无信息的输出。我只知道
i_term.windows()[0]是正确的,因为如果我输入i_term.windows()[0].name()我会得到字符串“zsh”,它是窗口的标题。 - 我不知道文本 UI 元素的方法/变量的名称是什么。
更一般地说,我在另一个问题中的描述方式(我将很快进行编辑的链接),我尝试以多种方式打印我正在使用的变量的“内容”,但我不能查看它们包含的方法/值。例如:我希望能够看到i_term 的方法/变量列表,特别是要知道它包含方法windows(),但我没有找到获取此信息的方法。能够获得这些信息将使编写代码变得更加容易,即使目前缺乏文档。
如何获取该文本的字符串值?
【问题讨论】: