Safari-AppleScript不会移动到bookdown在线图书的下一部分
我正在编写一个脚本,将bookdown的一部分打印为PDF,然后转到下一部分,依此类推 打印部件工作,关键代码来自: 甚至重新开放狩猎,但什么也没发生Safari-AppleScript不会移动到bookdown在线图书的下一部分,safari,applescript,bookdown,Safari,Applescript,Bookdown,我正在编写一个脚本,将bookdown的一部分打印为PDF,然后转到下一部分,依此类推 打印部件工作,关键代码来自: 甚至重新开放狩猎,但什么也没发生 tell application "Safari" activate tell application "System Events" key code 124 -- right arrow to move to the next section
tell application "Safari"
activate
tell application "System Events"
key code 124 -- right arrow to move to the next section
end tell
end tell
我怎样才能让AppleScript翻页并转到下一节
此外,我欢迎您提出改进脚本的建议!我想知道避免重复15次标签是否容易。我查看了可访问性检查器,发现打印菜单中的PDF对应于NSPopUpButtonCell。我曾尝试使用其工作表的select NSPOUPPBUTTONCELL,但它不起作用
我可以手动单击右箭头并移动到下一节,但我无法使用脚本来执行此操作
我怎样才能让AppleScript翻页并转到下一节
如果您试图以编程方式单击右箭头,如下图所示,则以下示例AppleScript代码可以执行此操作:
告诉应用程序Safari
告诉文件1
做JavaScript
document.getElementsByClassName'fa-fa-angle-right'[0]。单击;
注:
这需要允许在隐藏的“开发”菜单上检查来自Apple事件的JavaScript
要取消隐藏隐藏的“开发”菜单,请执行以下操作:
Safari>首选项…>高级>[√] 在菜单栏中显示“开发”菜单
更新地址:
此外,我欢迎您提出改进脚本的建议!我想知道是否可以轻松避免重复15次
下面是我如何使用上面的JavaScript并进行编码,以避免使用键代码和/或击键系统事件命令,尤其是在UI中使用选项卡
AppleScript代码示例:
告诉应用程序系统事件
告诉应用程序进程Safari
将frontmost设置为true
将i设置为0
重复此操作,直到其最前面=true
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击菜单项“打印…”
菜单1,共页
菜单栏项文件的
菜单栏1
告诉它的前窗
将i设置为0
重复此操作,直到存在第1页的菜单按钮PDF
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击第1页的菜单按钮PDF
将i设置为0
重复此操作,直到存在菜单项另存为PDF,共页
菜单按钮的菜单1第1页PDF
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击菜单项另存为PDF,共页
菜单1,共页
菜单按钮PDF,共页
表1
将i设置为0
重复此操作,直到活页1的活页1的“保存”按钮存在
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击“保存工作表1的工作表1”按钮
将i设置为0
在第1页存在时重复上述步骤
延迟0.1
将i设置为i+1
如果我≥ 100然后返回
结束重复
结束语
结束语
结束语
告诉应用程序Safari
告诉文件1
做JavaScript
document.getElementsByClassName'fa-fa-angle-right'[0]。单击;
注:
由于这种类型的AppleScript脚本使用UI脚本,因此我以重复循环的形式提供了一个错误处理,以等待最多两秒钟,使目标UI元素可以对大多数目标执行操作,但是最后一个重复循环等待的时间更长,因为它必须等待另存为PDF才能完成可以使用具有适当值的delay命令,但在重复循环中包含十分之一秒的延迟时,它不必等待超过需要的时间。换句话说,如果我想减缓脚本在UI的各种事件中的运行速度,我只会使用简单的delay命令。这一点值得怀疑d需要调整,但显然在必要时进行调整
如果达到超时,脚本将在该点中止,而不会显示任何错误消息≥ 20然后返回语句可以转换为完整的if块,并根据需要通过显示对话框、显示警报或显示通知命令包含错误消息
我可以手动单击右箭头并移动到下一节,但我无法使用脚本来执行此操作
我怎样才能让AppleScript翻页并转到下一节
如果您试图以编程方式单击右箭头,如下图所示,则
示例AppleScript代码可以做到这一点:
告诉应用程序Safari
告诉文件1
做JavaScript
document.getElementsByClassName'fa-fa-angle-right'[0]。单击;
注:
这需要允许在隐藏的“开发”菜单上检查来自Apple事件的JavaScript
要取消隐藏隐藏的“开发”菜单,请执行以下操作:
Safari>首选项…>高级>[√] 在菜单栏中显示“开发”菜单
更新地址:
此外,我欢迎您提出改进脚本的建议!我想知道是否可以轻松避免重复15次
下面是我如何使用上面的JavaScript并进行编码,以避免使用键代码和/或击键系统事件命令,尤其是在UI中使用选项卡
AppleScript代码示例:
告诉应用程序系统事件
告诉应用程序进程Safari
将frontmost设置为true
将i设置为0
重复此操作,直到其最前面=true
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击菜单项“打印…”
菜单1,共页
菜单栏项文件的
菜单栏1
告诉它的前窗
将i设置为0
重复此操作,直到存在第1页的菜单按钮PDF
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击第1页的菜单按钮PDF
将i设置为0
重复此操作,直到存在菜单项另存为PDF,共页
菜单按钮的菜单1第1页PDF
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击菜单项另存为PDF,共页
菜单1,共页
菜单按钮PDF,共页
表1
将i设置为0
重复此操作,直到活页1的活页1的“保存”按钮存在
延迟0.1
将i设置为i+1
如果我≥ 20然后返回
结束重复
单击“保存工作表1的工作表1”按钮
将i设置为0
在第1页存在时重复上述步骤
延迟0.1
将i设置为i+1
如果我≥ 100然后返回
结束重复
结束语
结束语
结束语
告诉应用程序Safari
告诉文件1
做JavaScript
document.getElementsByClassName'fa-fa-angle-right'[0]。单击;
注:
由于这种类型的AppleScript脚本使用UI脚本,因此我以重复循环的形式提供了一个错误处理,以等待最多两秒钟,使目标UI元素可以对大多数目标执行操作,但是最后一个重复循环等待的时间更长,因为它必须等待另存为PDF才能完成可以使用具有适当值的delay命令,但在重复循环中包含十分之一秒的延迟时,它不必等待超过需要的时间。换句话说,如果我想减缓脚本在UI的各种事件中的运行速度,我只会使用简单的delay命令。这一点值得怀疑d需要调整,但显然在必要时进行调整
如果达到超时,脚本将在该点中止,而不会显示任何错误消息≥ 20然后返回语句可以转换为完整的if块,并根据需要通过显示对话框、显示警报或显示通知命令包含错误消息。@Emy,请参阅我更新的答案的更新地址:部分,因为它解决了OP最后一段的第一句话。@Emy,我更改了最后一个重复循环a它最初的目标是错误的UI元素。现在它的编码是为了给保存到PDF的时间来完成,因为我注意到一些章节相当长,可能已经被截断。对不起!@Emy,请查看更新后的答案的更新地址:部分,因为它解决了您的OP最后一段的第一句话。@Emy,我更改了答案上次重复循环,因为它最初的目标是错误的UI元素。现在对它进行编码,以便有时间保存到PDF,因为我注意到有些章节很长,可能已经被截断。对不起!
tell application "System Events"
key code 124 -- right arrow to enter the next page
end tell
tell application "Safari"
activate
tell application "System Events"
key code 124 -- right arrow to move to the next section
end tell
end tell