rb-appscript:访问父引用?

发布于 2024-11-01 17:23:17 字数 516 浏览 6 评论 0原文

有没有一种简单的方法可以找到引用的父元素引用?

例如,假设我有以下参考:

ref = app("System Events").processes["Safari"].windows[1].buttons[1]

我想做类似以下的事情:

ref.parent  # => app("System Events").processes["Safari"].windows[1].buttons

甚至:

ref.parent  # => app("System Events").processes["Safari"].windows[1]

我已经查看了文档和指南,但没有成功。我还尝试了一个大禁忌,即对 Appscript::Reference 类进行猴子修补并添加我自己的方法,但它开始以难以排除故障的方式破坏我的规范。我也考虑过使用 eval 但这似乎是一个更糟糕的主意。有什么想法吗?

Is there an easy way to find the parent element reference of a reference?

For example, suppose I have the following reference:

ref = app("System Events").processes["Safari"].windows[1].buttons[1]

I would like to do something similar to the following:

ref.parent  # => app("System Events").processes["Safari"].windows[1].buttons

Or even:

ref.parent  # => app("System Events").processes["Safari"].windows[1]

I've looked over the documentation and guides and haven't been successful. I also tried a big no-no by monkey-patching the Appscript::Reference class and adding my own methods but it starts to break my specs in ways that are difficult to troubleshoot. I also thought about using eval but that seemed like a worse idea. Any thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

翻了热茶 2024-11-08 17:23:17

经过一番挠头之后,我想我可能有一个解决方案:

ref = app("System Events").processes["Safari"].windows[1].buttons[1]
ref.attributes[its.name.eq("AXParent")].value.get

Returns

[app("/System/Library/CoreServices/System Events.app").application_processes["Safari"].windows["rb-appscript: Accessing parent reference? - Stack Overflow"]]

是那种东西吗?

伊恩

After a bit of chin scratching, I think I might have a solution:

ref = app("System Events").processes["Safari"].windows[1].buttons[1]
ref.attributes[its.name.eq("AXParent")].value.get

Returns

[app("/System/Library/CoreServices/System Events.app").application_processes["Safari"].windows["rb-appscript: Accessing parent reference? - Stack Overflow"]]

Is that the kind of thing?

Ian

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文