尽管我已经发布了一个类似的问题,该问题已经得到很好的回答,但是我仍然不明白为什么会发生此错误以及如何解决它。这是我的代码...
to ClickNameClass(theClass, elementnum)
tell application "Google Chrome"
open location "https://www.google.com"
tell active tab of front window
execute javascript "document.getElementsByClassName(' " & theClass & " ')[' " & elementnum & " '].click();"
end tell
end tell
end ClickNameClass
这是自动按钮单击的语法吗?如果是,为什么会出现错误?任何帮助表示赞赏.....
答案 0 :(得分:0)
为了完整起见,我要添加一个答案...
像your other question一样,execute javascript ...
代码格式错误,在<{>}周围也有个空格就像在className
周围有单引号一样。
已根据您最初发布的内容重写的以下indexValue
处理程序将在目标URL 中打开“ https://www.google.com”此实例,等待页面加载,然后单击 Google主页上的登录按钮。
clickElementByClassName
在“脚本编辑器”中的“答复”窗格上显示:
on clickElementByClassName(thisURL, className, indexValue)
tell application "Google Chrome"
open location thisURL
repeat until (loading of active tab of front window is false)
delay 0.1
end repeat
tell active tab of front window
execute javascript "document.getElementsByClassName('" & className & "')[" & indexValue & "].click();"
end tell
end tell
end clickElementByClassName
clickElementByClassName("https://www.google.com", "gb_7f gb_Fa gb_Jb", 0)
如您所见,在页面完成加载并且{的两边都没有 space 之前,不会处理 code 的tell application "Google Chrome"
open location "https://www.google.com"
get loading of active tab of window 1
--> true
get loading of active tab of window 1
--> true
get loading of active tab of window 1
--> true
get loading of active tab of window 1
--> false
execute active tab of window 1 javascript "document.getElementsByClassName('gb_7f gb_Fa gb_Jb')[0].click();"
--> missing value
end tell
Result:
missing value
行在execute
周围使用{1}}或单引号,就像使用原始编码一样。
我还从处理程序中删除了className
的硬编码,因此使其更具通用性和可重用性。
如您所见,结果是indexValue
,在这种情况下,这并不是一件坏事,就像在测试中将我带到此示例中的 Sign in-Google Accounts 页面