我正在尝试自动进行搜索,并重点关注计算机在搜索栏中键入搜索内容的部分。我认为我所有的语法都是正确的,但是当我运行代码时,什么也没有发生,并且在applescript结果日志中,它显示“缺少值”。
这是我的代码:
to inputByID(theId, theValue) --defines the function--
tell application "Google Chrome"
open location "https://www.google.com "
execute javascript " document.getElementById(' " & theId & " ').value = ' " & theValue
end tell
end inputByID
inputByID("lst-ib", "hi ")
我的语法错误还是我遗漏了一些东西?任何帮助表示赞赏。.
答案 0 :(得分:0)
" document.getElementById('" & theId & "').value = '" & theValue & "'"
可能您必须删除theId
之前和之后的空格
以使其变为('myId')
而不是(' myId ')
,并在末尾添加引号。
答案 1 :(得分:0)
这在macOS High Sierra中对我有效:
to inputByID(theId, theValue)
tell application "Google Chrome"
open location "https://www.google.com"
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.getElementById('" & theId & "').value = '" & theValue & "';"
end tell
end tell
end inputByID
inputByID("lst-ib", "Hello World!")
除了您的 code 的execute javascript ...
行格式不正确的事实之外,您可以将自己的行与我的行进行比较以了解差异,您也没有告诉Google Chrome {{{ 1}}行 code 。因此,例如:execute javascript ...
另外,在使用tell active tab of front window
命令之后,您还必须等待 code的open location ...
行的 target 存在,因此在execute javascript ...
命令之后和{{1}前使用 code 的repeat until (loading of active tab of front window is false)
行} code 行。