繁体   English   中英

AppleScript无法从日历运行

AppleScript does not run from calendar

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我使用以下代码打开了一个网站,插入一些必需的文本,单击“查看”,然后下载生成的文档。 如果我手动单击它,它将运行完美。 如果我坐在Mac前面时安排一个日历事件来调用它,它也可以工作。 我尝试了保持显示屏开/关和屏幕解锁/锁定的各种组合。 由于某种原因,当我将其设置为运行时,它似乎无法在上午5:30和下午2:00工作。 我已检查以确保磁盘和Mac也不会进入睡眠状态。 对于我在做什么错的任何想法,将不胜感激。

--Quit Safari before the program starts
tell application "Safari"
    close every window
end tell

--empty "Downloads" folder
tell application "System Events"
    delete (every file of folder ("/Users/97pubs/Downloads"))
end tell

--opens DINS website
tell application "Safari"
    make new document with properties {URL:"https://www.notams.faa.gov/dinsQueryWeb/"}
    activate
    ignoring white space
        tell front document to repeat until its text contains "About DINS"
        end repeat
    end ignoring
    log "Finished loading"
end tell

delay 2

--Function to press DoD banner on DINS website
to clickClassName(theClassName, elementnum)
    tell application "Safari"
        do JavaScript "document.getElementsByClassName('" & theClassName & "')[" & elementnum & "].click();" in document 1
    end tell
end clickClassName

clickClassName("ui-state-default", 0)

delay 2

--Function to input ICAO abbreviations on the page
to inputByName(theName, num, theValue)
    tell application "Safari"
        do JavaScript " 
  document.getElementsByName('" & theName & "')[" & num & "].value ='" & theValue & "';" in document 1
    end tell
end inputByName

inputByName("retrieveLocId", 0, "kmaf")

delay 2

--Function to click "View NOTAMs" on page
to clickName(theName, elementnum)
    tell application "Safari"
        do JavaScript "document.getElementsByName('" & theName & "')[" & elementnum & "].click();" in document 1
    end tell
end clickName

--Clicks "View NOTAMs" on page
clickName("submit", 0)

--Waits for next window to completely load before continuing
tell current application
    tell application "Safari"
        tell window 1
            repeat until (exists tab 2)
                delay 1
            end repeat
            ignoring white space
                tell front tab to repeat until its text contains "DINS Disclaimer"
                end repeat
            end ignoring
        end tell
    end tell
end tell

delay 1

--Clicks "Save all NOTAMs" on page
clickName("button", 1)

delay 2

--Waits for download to complete before continuing
set someFolder to "/Users/path/to/save/location/" -- put your download folder path here 
if not (waitForFilesToCopy into someFolder for (10 * minutes)) then
    display alert "Error with downloads" message "The downloads did not complete in the time allowed."
    if button returned of the result is "Cancel" then error -128
end if
to waitForFilesToCopy into theFolder for timeToWait
    (* 
    waits up to the timeToWait for files to be copied/downloaded to theFolder the test is based on the size of the folder not changing after several seconds the rough timeToWait may need to be adjusted if copying several files/folders parameters - theFolder [mixed]: the folder to check timeToWait [integer]: a maximum timeout value in seconds returns [boolean]: true if copy/download finished, false if timeout 
    *)
    set {theFolder, possible, interval} to {theFolder as text, false, 2} -- change the check interval as desired 
    tell application "System Events" to set currentSize to size of disk item theFolder -- get initial size 
    repeat (timeToWait div interval) times -- check every interval seconds 
        delay interval
        tell application "System Events" to set newSize to size of disk item theFolder -- recheck size 
        if (newSize is equal to currentSize) then
            if possible then -- no change since last time 
                return true -- success 
            else -- one more time... 
                set possible to true
            end if
        else -- update size & possible switch 
            set {currentSize, possible} to {newSize, false}
        end if
    end repeat
    return false -- fail (timeout) 
end waitForFilesToCopy

--Rename PDF to "5 Local NOTAMs.pdf"
tell application "System Events" to set name of file "/Users/path/to/save/location/temp.pdf" to "5 Local NOTAMs.pdf"

--Move NOTAMs to "CrewPapers" folder
tell application "Finder"
    move POSIX file "/Users/path/to/save/location/5 Local NOTAMs.pdf" to POSIX file "/Users/path/to/new/location" with replacing
end tell

--Close Safari and Preview windows
tell application "Safari"
    close every window
end tell
tell application "Preview"
    close every window
end tell
问题暂未有回复.您可以查看右边的相关问题.
2 从PHP运行Applescript

我正在尝试从本地Web服务器运行applescript,但似乎无法执行do shell script 这是PHP代码 苹果脚本 当我运行PHP时,Betternet VPN退出了,但是cliclick无法正常工作。 有什么建议吗? ...

3 从C运行applescript

如何在C命令行实用程序中运行AppleScript? 谷歌搜索不起作用,它只给了我Objective- C解决方案...... 编辑:糟糕,我应该谷歌搜索'运行shell脚本C'... 现在我找到了system()函数...... ...

4 AppleScript,Smile:Apple终端运行的Applescript可以正常运行,从Smile对话框调用的相同脚本无法

我正在使用AppleScript(以及使用系统事件的许多UI脚本)开发Lightroom 5的自动化工具。 我正在使用“微笑”对话框作为控制脚本(尽管计划最终使用Swift创建一个控制应用程序)。 我有一个脚本,该脚本应该导入一组Smart Collections。 为了做到这一点,我 ...

6 使用 Applescript 从 OSX 日历中删除事件

使用 Applescript 从 OSX 日历中删除事件显然失败了 - 该事件已从数据库中删除,但仍出现在日历应用程序中。 两次删除同一事件会导致错误(未找到事件),因此很明显该事件虽然在应用程序中仍然可见,但实际上已被删除。 对事件进行计数的示例,以便人们可以看到它确实被删除了,即使它仍然出现 ...

8 从服务器/在云中运行AppleScript

是否可以从服务器或云服务运行AppleScript? 我想要一些可以在我的计算机处于睡眠/关机状态时运行的脚本。 我在Google上浏览了一下,但没有发现任何希望。 如果不存在,那么我基本上需要从计算机中删除密码,并在需要运行脚本时唤醒计算机。 ...

9 AppleScript将iCal事件从一个日历移动到另一个日历

尝试编写脚本,将包含关键字的事件从一个日历移动到另一个日历,但遇到困难。 有指针吗? 我目前正在做这样的事情: 但是,这是iCal返回此错误: “保存日历数据时出错。在保存到数据库时,日历遇到严重错误,并且最近的更改可能会丢失。控制台中可能会提供更多信息。” 我究竟做错了 ...

10 使用AppleScript解析日历(ICS)

Iam很难破解。 我已经将ICS文件读入AppleScript,并且需要对其进行解析。 这是我的代码 数据读得很好,但是我需要解析它。 我希望脚本为每个事件读取BEGIN:VEVENT和END:VEVENT之间的数据。 我不确定如何执行此操作,但是有一个foreach循环之类的东 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM