'点击'返回“系统事件出错...” - Applelescript

时间:2014-02-27 19:30:33

标签: applescript

新手到苹果,对不起,如果它愚蠢。我一直在尝试编写一个脚本来检查网络是否健康,如果没有,请转到网址并单击网页上的“登录”按钮(实际上该页面包含“用户名”和“密码”,我的浏览器会自动填充)。我使用了以下代码;

try
set thePing to do shell script "/sbin/ping -o -c 1 www.google.com"
on error
tell application "Google Chrome" to open location "https://mwcp-ekm-04.adlkerala.com:8001"
delay 5
tell application "System Events"
    tell process "chrome"
        click at {585, 220}
    end tell
end tell
end try

(我知道javascript会更好'点击'然后我不知道该怎么做)

运行时我收到以下错误“系统事件出错:无法将{585,220}转换为类型列表。”编号-1700从{585,220}列出“

编辑: 经过一些谷歌搜索后我设法拔出了java代码; try set thePing to do shell script "/sbin/ping -o -c 1 www.google.com" on error tell application "Safari" to open location "https://mwcp-ekm-04.adlkerala.com:8001" delay 3 tell application "Safari" do JavaScript "document.getElementById('submit').click();" in current tab of first window end tell
end try
但现在返回结果“缺少值”

我将不胜感激任何帮助

由于

2 个答案:

答案 0 :(得分:3)

我认为click at在10.9中停止了工作。或者至少

tell application "System Events" to tell process "Safari"
    set frontmost to true
    click at {20, 20}
end tell

在10.8中适用于我,但在10.9中会导致类似error "System Events got an error: Can’t make {20, 20} into type list." number -1700 from {20, 20} to list的错误。

尝试使用MouseToolscliclick(或JavaScript)。

答案 1 :(得分:0)

我刚刚用s.o回答了一个非常类似的问题。试图“点击桌面”(here)...

系统事件的sdef文件说,当发送到“进程”对象 [在]点击的{x,y}位置时,“click at”仍然有效在全局坐标(意思是:在绝对屏幕坐标中,相对于应用程序窗口的 NOT )。

所以:你不能“点击”桌面上可见的文件(实际上是“文件”:进程“Finder”的滚动区域组1的图像)但你仍然可以点击任何窗口/按钮。

每次“点击”,屏幕上的任何位置都必须有“目标”。它不会像鼠标一样工作。