问题标签 [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.

0 投票
1 回答
1199 浏览

javascript - 当 Safari 正在运行并且没有窗口时,如何通过 JavaScript 自动化打开 Safari 的新窗口?

当 Safari 未运行时,我可以通过以下自动化 JavaScript 代码打开 Safari。

但是当 Safari 正在运行并且没有窗口时,上面的代码并没有打开 Safari 的新窗口。

我尝试添加以下代码。

但是没有效果。

当 Safari 正在运行但没有窗口时,如何通过 JavaScript 自动化打开 Safari 的新窗口?

目前,我正在使用以下代码

我不喜欢它。

0 投票
1 回答
253 浏览

macos - 在 OSX 上执行 javascript 自动化脚本时忽略超时错误

在将一个文档转换为另一个文档时,我的脚本(在 OSX 10.10 上的脚本编辑器中用 javascript 编写)超时并出现错误 -1712(“AppleEvent Timed Out”)。

怎么能忽略这个超时?或者至少延长超时延迟。

0 投票
3 回答
3378 浏览

macos - 使用 Javascript for Automation (JXA) 通过 Messages.app 发送 iMessage

我一直在尝试为自动化脚本创建一个 JavaScript,以通过 Yosemite 10.10.2 上的消息应用程序发送 iMessage(最终目标是编写一个解决方案以允许后台任务处理 iMessage 故障状态等)。

该脚本在脚本编辑器中执行,没有错误,但是没有发送任何消息,并且在 Messages.app 中没有任何显示或发生。尽管下面的我的服务和伙伴被混淆了,但我的具有真实值的脚本检索了正确的服务和伙伴(通过对服务和伙伴名称执行 messages.displayAlert() 来验证)。我从脚本中得到的唯一输出是 service.send() 的“未定义”,我认为它是正确的,因为该方法具有 void 返回类型)。下面的脚本是我一直未能成功尝试的脚本:

等效的 AppleScript 脚本(如下)成功运行:

0 投票
1 回答
385 浏览

applescript - 如何将此滑块值更改从 AppleScript 转换为 JavaScript

这一点 AppleScript 有效。如果我打开了系统偏好设置声音面板,并在脚本编辑器应用程序中运行它,它会将音量更改为 50%。

这试图成为同一件事,但失败了。谁知道怎么修它?

最终将其设置为 0。似乎我只能将音量设置为 0 或 1。实际上,我正在尝试编写另一个应用程序的脚本,但这归结为问题。

0 投票
0 回答
164 浏览

xcode - 从 AppCode 在 Xcode 中打开 FileName:LineNumber

我想从 AppCode 切换到 Xcode 并继续在同一行上编辑文件

基于 UI 自动化的解决方案似乎有效。是否有任何解决方案如何在没有 UI 自动化的情况下做同样的事情?不需要显示Open Quickly对话框和打字FileName:LineNumber

谢谢!


基于 UI 自动化的解决方案。
下面的代码将打开File -> Open Quickly ...对话框,然后输入File or Symbol搜索字段,最后点击Enter

命令行用法:

AppCode 的用法:

  1. File -> Preferences -> Tools -> External Tools
  2. 添加新工具并使用宏配置参数(即$FileName$:$LineNumber$

07.06.2016 更新:设置的详细说明External Tool

  • 程序:/bin/bash
  • 参数:-c "[[ -r ~/.bashrc ]] && . ~/.bashrc; osascript -l JavaScript \"$PATH_TO_YOUR_SCRIPTS_DIR/OpenFileInXcode.scpt\" \"$FileName$:$LineNumber$\""
  • 工作目录:$ProjectFileDir$
0 投票
7 回答
3996 浏览

macos - 如何在 JavaScript for Automation 中获取当前脚本文件夹的 POSIX 路径?

在 AppleScript 中,可以使用以下行获取当前脚本所在文件夹的 POSIX 路径:

示例结果:/Users/aaron/Git/test/

什么是 JavaScript 等价物?

0 投票
1 回答
492 浏览

javascript - JXA 获取文件的大小和校验和?

我在我的 Mac 上使用 JXA(用于自动化的 JavaScript)来尝试自动上传 iTunes Connect 屏幕截图。正因为如此,我想自动抓取每个图像并上传它,但为了让 iTunes Connect 允许这样做(使用 iTMSTransporter),我需要编辑一个 XML 文件并添加每个图像的大小(以位为单位),并获取校验和(类型=“md5”)。

我知道我可以手动执行此操作,但我想将其自动化,因为从长远来看,这将为我节省大量时间,每个本地化都有大量不同的屏幕截图。

我已经使用 JXA 来获取图像并获取它们的尺寸,但无法弄清楚获取大小和校验和。也许有人可以帮忙?或者,如果不使用 JXA,也许还有一些其他的 JXA 可以运行的脚本(比如一个 shell 脚本,我现在还没有经验),或者我可以提前运行一些脚本并且手动将 XML 导出到文件。从那里我可以使用 JXA 来解析该文件。

这是我到目前为止获取图像文件所需的内容:

0 投票
1 回答
913 浏览

macos - 在 JavaScript for Automation (OSA) 中使用 Application.currentApplication() 时出错

在 OSA 脚本中使用Application.currentApplication()时,它会在从命令行运行时发出以下警告:

为什么会发生这种情况以及可以做些什么呢?

例子

应用程序.js:

外壳输出:

0 投票
2 回答
1444 浏览

utf-8 - JXA:写入文件时设置 UTF-8 编码

如果我使用标准添加编写文本文件,我显然可以在参数包中配置编码。在 AppleScript 中我会写 «class utf8» 但在 JXA 中使用哪个值?我尝试了字符串“UTF8”、“utf8”、“class utf8”但没有成功。错误始终是:“错误:无法转换类型。(-1700)”。如果我使用“文本”,则文件是用 MACROMAN 编写的。

下面的独立示例:

在 foo 的回答之后添加:

我阅读了文档https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/index.html#//apple_ref/doc/uid/TP40014508-CH109-SW17中的相关段落

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/index.html#//apple_ref/occ/instm/NSString/writeToFile:atomically:encoding:error

改为使用 ObjectiveC 桥接器。这个例子有效

如果我理解正确,以下示例应该可以工作,因为在桥中如何命名 ObjectiveC 方法的约定(删除冒号,添加驼峰式),但事实并非如此。没有文件被写入,返回值为 false。

我做错了什么?我什至不知道如何将正确的错误处理程序作为第四个参数传递,以及第三个参数是否具有正确的值。

0 投票
2 回答
2062 浏览

macos - 如何使用 JXA 单击 UI 元素

请告诉我如何在应用程序窗口中单击点坐标?我尝试使用 JXA 技术在 OSX 10.10 上自动化我的应用程序。在文档中,我发现可以使用点击事件。我是 JXA 的初学者,无法找到如何拨打电话。我在脚本编辑器中尝试过的代码片段:

谢谢你的帮助