问题标签 [rb-appscript]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1353 浏览

xcode - 如何使用 rb-appscript 将文件添加到 Xcode 中的目标?

我正在尝试使用 rb-appscript 自动将文件添加到我的 Xcode 项目中。我对 Ruby 或 Applescript 没有太多经验,但似乎有两个人为他们完成了这项工作:

https://github.com/gonzoua/xcs/blob/master/xcs.thor

自动将生成的源文件添加到 xcode 项目

不幸的是,这些都不适合我。我可以让他们将文件添加到组,但将文件添加到目标会中断。这是对我不起作用的最简单的代码:

此消息失败:

请注意,我使用的是 Xcode 4,但我的项目似乎有“Xcode_3_references”。我从头开始创建的项目也是如此;我不确定为什么。

无论如何,我不确定如何处理此错误消息,或者在哪里可以找到有关此的文档。(我查看了 Xcode 字典,但它没有太多关于“添加”的内容。)任何建议都会很棒。我没有嫁给 rb-appscript,我只想以编程方式将文件添加到我的项目中。

0 投票
2 回答
580 浏览

ruby - 分段错误问题(selenium-webdriver + rb-appscript)

我正在尝试自动化网络抓取,同时使用selenium-webdriverAppleScript 的 和 ruby​​ 端口rb-appscript。但是,当我尝试运行代码时,我一直遇到分段错误。

代码:

这一行:

似乎是导致问题的原因。

在单独的文件中执行时,两者都可以正常工作。

硒网络驱动程序:

rb-appscript:

知道问题是什么吗?我是 ruby​​ 的新手,所以我不确定是什么导致了这个问题。

Ruby 版本:1.8.7(2011-06-30 补丁级别352) 操作系统:Mac OSX 10.6.8 64 位

0 投票
1 回答
1255 浏览

ruby - 如何在 Ruby 中捕获此异常?

我是红宝石初学者,所以请耐心等待。

我正在使用 selenium-webdriver 和 rb-appscript gems 来做一些网页抓取。到网站的导航似乎是由 Net::Http 对象驱动的,它有一个 rbuf_fill 方法。

运行以下代码:

产生此错误:

我不知道为什么我不能捕捉到这个异常。使用rescue Exception 应该可以捕获所有内容,但是您可以看到我的脚本仍然崩溃。

我还找到了说您必须明确捕获超时的消息来源,所以我也尝试了:

rescue Timeout::Error

没有任何运气。

非常感谢您对此提供的任何帮助。

Ruby 版本:ruby 1.9.2p290(2011-07-09 修订版 32553)

操作系统:MacOS雪豹10.6.8 64位

Selenium Webdriver 版本:2.2.0

0 投票
1 回答
1068 浏览

photoshop - 如何使用 py-appscript 将 PSD 导出为 PNG?

我编写了一个脚本,用 rb-appscript 将 PSD 导出为 PNG。这很好,花花公子,但我似乎无法在 py-appscript 中完成它。

这是红宝石代码:

这是显然不等价的python代码:

python 脚本中唯一不起作用的部分是保存。我在尝试不同的导出选项和东西时遇到了各种各样的错误:

连接无效... 发生一般 Photoshop 错误。此功能在此版本的 Photoshop 中可能不可用...无法将某些数据转换为预期类型...

我可以只使用 ruby​​ 脚本,但我们所有的其他脚本都在 python 中,所以能够在 python 中完成它会很好。提前感谢互联网。

0 投票
1 回答
629 浏览

osx-lion - 如何在 OSX Lion 中使用 rb-appscript 在 Finder 中获取当前选定文件的路径

在 OSX 10.6 中,我使用以下代码对 Finder 中当前选择的每个文件执行一些操作:

(这是由键盘大师推出的)。这工作得很好,但是在 OSX Lion 中,行为似乎已经改变。

selection.get 仍然返回正确的参考 app('Finder').selection.get[0] => app"/System/Library/CoreServices/Finder.app"disks["Home"]folders["stian"]folders[ "下载"]document_files["综合考试(1).doc"]

但是,当我尝试使用 URL.get 提取它时,我得到一个奇怪的数字: app('Finder').selection.get[0].URL.get => "file:///.file/id=6637683.2924283"

如何获取上述参考并将 POSIX 路径作为文本字符串 (/Home/stian/Downloads/Comprehensive Exam (1).doc)?

我可以获得整个参考的文本版本,如下所示: app('Finder').selection.get[0].get.to_s => "app("/System/Library/CoreServices/Finder.app").disks["Home"].folders["stian"].folders["Downloads"].document_files["Comprehensive Examination (1).doc"]"

所以我想我可以手动解析它并构建 POSIX 路径,但这似乎非常麻烦和脆弱。

谢谢你的帮助!

0 投票
1 回答
4666 浏览

ruby - 如何使用 Applescript 遍历 Excel 中的所有行?

我正在尝试遍历 Excel 中的所有行并在每一行上运行一些命令,但我不知道怎么做!

我最初尝试在 rb-appscript(AppleScript 的 Ruby 包装器)中执行此操作,但我决定在添加另一个 DSL 之前先尝试使其在 Applescript 中运行会更好。有小费吗?(rb-appscript 版本也不错,虽然不是必需的)。

谢谢!

0 投票
1 回答
290 浏览

ruby - 处理唤起 MacOS 安全窗口的 shell 命令的 Ruby 方式

我有一个简单的问题,我想看看这里的人是否可以帮助我。目前,我正在编写一些测试自动化来处理一个简单的内部命令行工具,该工具可以转储智能卡的内容。在转储此智能卡信息的过程中,它会调用一个 PIN 输入窗口,用户需要在该窗口中输入其 PIN 码信息以进行智能卡解锁。我遇到的问题有两个。

  1. 你如何在 ruby​​ 中处理这样的弹出窗口?这是通过 rb_appscript 完成的吗?或类似的东西?如果这是可能的(我无法弄清楚),如何获取该窗口的 id、名称等,然后捕获文本输入事件?似乎很难。

  2. 只有当您有“多个”PIN 窗口要处理时,这种情况才会真正发生。对于 CAC 卡,有一个解锁 PIN 事件,可以在脚本的早期通过一个名为“security”的简单钥匙串 cli 轻松处理:

这个事件:

security unlock-keychain -p "12345678" "CAC-4070-4443-223E-5555-2187"

如果在转储卡之前调用将解锁钥匙串并转储卡而不提示 PIN 提示。

但是,如果该卡是 PIV 卡,则令牌中似乎存在一个错误,该错误会在卡内显示另外 4 个 PIN 提示以获取证书。所以上面的命令只对一个解锁事件有效。我尝试连续发送 4 个解锁事件,但似乎无法处理。我遇到的 PIN 输入窗口如下所示:

在此处输入图像描述

我很好奇如何在 Ruby 中处理这个动作,这可以通过我不知道的另一个 ruby​​ gem 的 rb_appscript 来完成吗?你能穿这个吗?

这是我的代码,请原谅硬编码,但我现在只是在嘲笑:

我正在查看 gem 'session' 和其他一些交互式 shell gem,但它们似乎无法处理这个问题。如果我能找到一种方法来处理我的 ruby​​ 代码中的那个窗口,那至少可以让我破解所有的 PIN 提示?或者有一个循环来查找这些窗口弹出窗口,在该弹出窗口中输入卡的 PIN,我至少会处理这个问题。

在这里的任何帮助将不胜感激。


我想我明白你在说什么.. 但由于这是一个并行过程,即事件需要被捕获,我不确定这个:

将起作用,因为一个 ruby​​ 进程正在运行。我想我可以把它放在一个循环中并以这种方式寻找窗口?但是,不太确定

0 投票
1 回答
480 浏览

ruby - 如何使用 Ruby 应用程序(不是 Rails)分发冻结的二进制 gem

我编写了一堆 Ruby 脚本,它们集成了不同的工具来创建“学术工作流程”。我的一些朋友对尝试这个非常感兴趣,但是他们对安装或复制我的环境的难度感到犹豫。

尽管 Ruby 内置于 Mac OSX 中(我集成的应用程序都是 Mac 应用程序,所以不幸的是该解决方案只能在 Mac 上运行),但我使用了一些二进制 gem,包括 Appscript(AppleScript 的桥)。问题是这需要 XCode,我的非程序员朋友没有安装它(要求他们安装 3GB 的软件来运行几 kbs 的代码似乎有点要求)。

我尝试通过使用 gem -i 将 gem 安装到源的子目录(在 github 上)来冻结 gem,并尝试在本地计算机上删除我的整个中央 gems 目录 - 它工作正常,脚本仍然运行等。但是,当我的朋友尝试运行脚本时,他们收到有关缺少库文件等的错误消息。

所以我的两个问题是: * 编译的二进制 gem 的具体程度如何?他们能在其他 Mac OSX 版本上工作吗?与其他版本的 Ruby?等 *我如何才能准确地找出 Ruby gem 依赖的二进制文件(位于中心位置),并将其与源打包(以及如何告诉 gem 在非标准位置找到这些文件的位置)

我知道这可能不是“标准程序”,我应该把它打包成一个 gem,让我的朋友处理问题等等——但我真的很想解决这个问题,我相信一定有一些方法这样做?

非常感谢

0 投票
1 回答
1558 浏览

ruby - 安装 rb-appscript 时出错

安装 rb-appscript 时遇到大问题。我已经安装了最新版本的 xCode 并且正在运行 Lion。

希望你能帮助我,非常感谢!

这是错误消息:

0 投票
1 回答
192 浏览

ruby - 如何使用 rb-appscript 驱动 Mac OS Finder 的“连接到服务器”菜单项

最终目标是在 Ruby/Cucumber 中编写一个自动化测试,用于连接到 WebDAV 服务器并在 Mac OS X 中测试身份验证、CRUD 和负载/性能。

我正在尝试尽可能多地模拟用户行为,这就是我关注 rb-appscript 的原因,但我对其他想法持开放态度。

我最初尝试过这个:

但这只会打开您的默认浏览器。我猜open_location只是使用基于协议或扩展的 Mac OS 的默认应用程序。

我还尝试为“连接到服务器...”模拟 Finder 键盘快捷键,但这也不起作用:

有任何想法吗?