Safari 如何修复Can’;t make";变量";转换为整数类型

Safari 如何修复Can’;t make";变量";转换为整数类型,safari,applescript,Safari,Applescript,我正试图创建一个脚本来自动打开safari,然后从那里登录到我的帐户,但当我告诉系统事件键入我的登录变量时,我得到了一个错误 自从我是AppleScript的新手以来,我没有做过很多尝试,但我发现无论是尝试键入变量还是直接键入字符串文本,都会产生相同的错误 open location "https://www.edutyping.com/student/login" set LoginUSER to "Placeholder" tell "System Events" keystroke

我正试图创建一个脚本来自动打开safari,然后从那里登录到我的帐户,但当我告诉系统事件键入我的登录变量时,我得到了一个错误

自从我是AppleScript的新手以来,我没有做过很多尝试,但我发现无论是尝试键入变量还是直接键入字符串文本,都会产生相同的错误

open location "https://www.edutyping.com/student/login"
set LoginUSER to "Placeholder"
tell "System Events"
    keystroke LoginUSER
end tell

您的
tell
命令的目标是字符串(文本)
“系统事件”
。一个字符串不能做很多事情,除非它是一个字符串,而且它肯定不知道如何发送键击。但是,您可以将此字符串与对象说明符一起使用,例如,
application
,该说明符将AppleScript指向具有特定名称(字符串)的特定类型的特定对象(例如,
application
),假设对象存在,等等,您可以
告诉
执行各种操作:

set LoginUSER to "Placeholder"
open location "https://www.edutyping.com/student/login"

tell application "System Events" --> Ahhh....!
    keystroke LoginUSER
end tell
这里,
应用程序“系统事件”
(也可以写成
名为“系统事件”
的应用程序)将AppleScript定向到您机器上名为“系统事件”的应用程序。谢天谢地,由于AppleScript对您机器上的几乎所有应用程序都非常熟悉,并且知道它们的所有名称,因此当您想要
告诉
它去做事情时,这对它更有意义。如果你让它做的事情是它能理解的,那么它会——在大多数情况下——继续去做

现在。。。显然,如果您向我发送了一封电子邮件,命令我执行以下操作:

open location "https://www.edutyping.com/student/login"
keystroke "<your name and password>"
我不知道在你的系统上加载该网页需要多长时间,所以你可以将该数字更改为
pi
或其他任何数字。有一些稍微好一点的方法可以让AppleScript留出这两个命令的时间间隔,而不是使用固定的
延迟(这只是猜测加载一个页面可能需要多长时间),但这是另一天的事情

set LoginUSER to "Placeholder"
open location "https://www.edutyping.com/student/login"
delay 7.18340739
tell application "System Events" to keystroke LoginUSER