问题标签 [javascript-automation]
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.
javascript - 如何使用适用于 mac yosemite 的 javascript automator (JAX) 获取网页的原始 html?
我想出了如何打开一个网页,但我想向谷歌提交一个表单,然后获取 html 结果。我怎样才能做到这一点?我想获取这些页面结果,以便我自己解析数据。
macos - 管道到 JXA 的子进程标准输入
我想在JavaScript for Automation (JXA) 中启动一个子进程,并将一个字符串发送到该子进程的标准输入,其中可能包括换行符、shell 元数据等。以前的 AppleScript 方法使用 bash 的<<<
运算符、字符串连接和quoted form of
字符串。如果有一个quoted form of
我可以信任的 JavaScript 等价物来获取所有边缘情况,我可以使用相同的方法;为此,我正在研究正则表达式方法。
但是,我想既然我们可以unistd.h
从 JXA 访问,为什么不尝试直接调用$.pipe
,$.fork
和$.execlp
呢? $.pipe
看起来它应该将一个包含 2 个整数的数组作为其参数,但我尝试过的所有方法都不起作用:
有什么建议么?
macos - 使用 Javascript for Automation 发送带附件的电子邮件
我想在 OS X Yosemite 中使用 Javascript for Automation 在 Mail.app 中创建新电子邮件并将文件附加到电子邮件中。这是我的代码:
到目前为止,它工作正常。我看到一个新的消息窗口,其中正确填写了收件人、主题和正文。但我不知道如何在消息中添加文件附件。Mail.app 的脚本字典表明该contents
属性( 的实例RichText
)可以包含附件,但我不知道如何添加。
我试过这个,但我得到一个错误:
我在网上找到了几个如何在 AppleScript 中执行此操作的示例,例如这个:
但我不知道如何将其转换为 Javascript。
itunes - 自动化和 iTunes 的 Javascript:未保存更新说明?
使用 Javascript for Automation (Yosemite),我想更新 iTunes 视频文件的描述。问题:描述恢复为旧值(例如评级正确保存)。
我使用的代码:
写入新值后一切正常,但刷新后描述恢复为旧值。例如,评级被正确保存。
如果我不使用 refresh(),并查看 iTunes 中的值,情况看起来不错(描述显示“新值”),但只要我为该曲目执行 Cmd-I 就会恢复为旧值. 这就是为什么我使用 refresh() 来确保我看到实际的最新值。
有什么建议么?
javascript - 用于自动化的 javascript [在查找器中打开位置]
我试图弄清楚 JXA(自动化的 JavaScript)是如何工作的,所以尝试将一个简单的 applescript 如下转换为 JXA。
我尝试的是在这里:
但我失败了......,我是applescript的新手,不太了解库中的描述。这是图书馆如何描述open
请告知我应该如何修改代码。^^ 谢谢
javascript - 使用 JavaScript 调用 Shell 脚本以实现自动化
使用 AppleScript,我可以调用 shell 脚本:
但我找不到在优胜美地脚本编辑器中使用 JavaScript 执行此操作的方法。
applescript - 使用 Javascript for Automation 复制 Numbers 中的单元格
我想使用 JXA 自动更新 Numbers 电子表格。例如,将一系列单元格从一个电子表格复制到另一个具有不同结构的单元格。
在这一点上,我只是在测试一个简单的程序来设置或读取单元格的值,但我无法让它工作。
当我尝试设置一个值时,我得到“错误 -1700:无法转换类型”。当我尝试读取一个值时,我得到一个 [object ObjectSpecifier] 而不是文本或数字值。
下面是代码示例:
当我运行它时,我得到并输出了两个 console.logs 的 [object ObjectSpecifier],然后是错误 -1700:尝试设置单元格时无法转换类型。
我尝试了其他几种访问或设置属性的变体,但无法正常工作。
提前致谢,
戴夫
macos - 用于自动化的 Javascript 未启动正确的应用程序
我正在尝试编写自动化 Javascript 来测试我的应用程序的 AppleScript 功能。我希望它启动我的开发版本,所以我是这样开始的:
当我运行脚本时,它会在完全不同的目录中启动另一个构建。但是,以下 AppleScript确实启动了预期的开发版本:
这两者不应该表现相同吗?以及它如何/为什么会寻找另一个具有相同 Bundle ID 的应用程序?该文档说我的 Javascript 语法应该可以工作:
访问应用程序
可以通过以下方式访问应用程序:
姓名
Application('Mail')
捆绑包 ID
Application('com.apple.mail')
小路
Application('/Applications/Mail.app')
...
keynote - 使用 Javascript for Automation 创建文件副本(主题演讲)
创建文件副本并指定新名称的推荐方法是什么?
目前我使用:
我宁愿在该重复方法中指定输出名称,而不是事后指定它。Finder 字典说我可以使用:
但是当我尝试以下操作时:
- 如果 new.txt 尚不存在,我会收到消息“错误 -1728:无法获取对象”
- 如果 new.txt 已存在,则消息为“错误 -1700:无法转换类型”
目前尚不清楚“位置说明符”是什么类型。我尝试了带有文件夹/文件/文件夹+文件的路径,常规字符串(文件夹/文件/文件夹+文件)。
建议?
osx-yosemite - 如何更改 Keynote 富文本中的文本项目分隔符,以便不忽略句点和逗号(使用 Javascript 进行自动化)?
简而言之:
使用 iWork 富文本对象,将文本分解为单词来自:
“这……他说的,是一句话!”
至:
[“这”、“他”、“说”、“是”、“一个”、“句子”]
所以:句号、逗号和感叹号都消失了。类似于AppleScript 的情况,但是对于自动化的 Javascript,我不清楚如何设置文本项分隔符(另外:我希望它可以比过去更简单)。
详细地:
我想修改富文本,如:
文本可以包含大小/颜色/重量的变化,应该保留。结果应该是例如:
当我浏览这些单词时(在我的例子中:Keynote 中的演讲者笔记),我得到:
代替:
所以:像 .、[ 和 > 这样的字符不会出现,这使得搜索/替换变得不可能。
为了得到这些词,我使用:
我还尝试将 who() 与忽略/考虑(大小写、连字符、标点符号)结合使用,但结果是一样的。
如何获取包含非字母数字字符的单词列表?