如何解决无法将“变量”转换为整数类型

时间:2019-11-11 00:21:39

标签: safari applescript

我试图制作一个脚本来自动打开Safari,然后从那里登录到我的帐户,但是当我告诉系统事件来击打我的登录变量时,我得到一个错误

自从我是AppleScript的新手以来,我并没有做太多尝试,但是我发现我是尝试敲击变量还是直接键入字符串文本都给出相同的错误

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

1 个答案:

答案 0 :(得分:0)

您的tell命令的目标是字符串(文本)"System Events"。字符串只能是字符串,不能做很多事情,而且它绝对不知道如何发送击键。但是,您可以将此字符串与对象说明符(例如application)一起使用,这将把AppleScript指向特定类型的特定 object (例如{{ 1}})(具有特定名称(字符串),假设对象存在,等等),您可以application做各种事情:

tell

在这里,set LoginUSER to "Placeholder" open location "https://www.edutyping.com/student/login" tell application "System Events" --> Ahhh....! keystroke LoginUSER end tell (也可以写为application "System Events")将AppleScript定向到计算机上名为“系统事件”的应用程序。幸运的是,由于AppleScript非常熟悉计算机上的每个应用程序,并且知道它们的所有名称,因此当您想要the application named "System Events"做某事时,这对它来说意义更大。如果您告诉它要做的事情是它了解的事情,那么它将在大多数情况下继续前进并做到这一点。

现在... 很显然,如果您向 me 发送了一封电子邮件,要求我执行以下操作:

tell

我当然会打开该位置,然后我会先等待页面加载,然后再将其输入您的学生帐户,然后可能现在,我已经登录到您的学生帐户,请命令自己做我该做的事情。

AppleScript,但是,可能不会意识到您希望它等待页面加载,因此它只会开始输入您告诉它的内容。 (哦,顺便说一句,AppleScript是 rerick-frickin-quick-at-typeping 。在美好的一天,我平均每分钟可能会听到120-140个单词。AppleScript可能每分钟可以写140个单词第二。)

因此,如果看起来AppleScript做了头一点,但其余的却没有,那实际上是因为它所做的一切都没有拖延。但是您可以使用open location "https://www.edutyping.com/student/login" keystroke "<your name and password>" 命令将其强制等待几秒钟:

delay

我不知道该网页将花多长时间加载到您的系统上,因此您可以将该数字更改为set LoginUSER to "Placeholder" open location "https://www.edutyping.com/student/login" delay 7.18340739 tell application "System Events" to keystroke LoginUSER 或其他任何数字。有一些更好的方法可以使AppleScript间隔出这两个命令的时间,而不是使用固定的pi(这只是猜测页面可能花费多长时间),但是那是另一天。