AppleScript Safari:页面完全加载后单击按钮
AppleScript Safari : Click button after page has fully loaded
我这里有这个脚本,它在一个未聚焦的 safari 选项卡上加载一个配置文件,并将我想要的文本保存在一个变量中
tell application "Safari" to set the URL of tab 2 of window 1 to "https://URLproduct/" & serialNumber & "/definition"
delay 2.5
然而,有些数据只有在点击按钮后才可用(这是一个带有按钮的弹出式窗口,这使得另一个文本在您按下 "OK" 之前无法访问,也这个按钮并不总是在这里)
按钮 HTML 是:
<button class="btn btn-primary" autofocus="" ng-click="ok()" tabindex="0">OK</button>
我用这个脚本按下:
do JavaScript "document.getElementsByClassName('btn btn-primary')[1].click();" in tab 2 of window 1
奇怪的是有时工作有时不工作,我不能添加太多延迟
我可以添加一个脚本来等待此按钮 ('btn btn-primary') 可用(完全加载),然后再次尝试使用我的第一个脚本获取文本吗?
--
也许我可以添加类似
的内容
tell application "Safari"
tell document 1
repeat until ("btn btn-primary" is in its source)
delay 0.5
end repeat
end tell
end tell
然后是点击脚本?
是的,您可以在页面加载后开始执行脚本。这确保按钮是可点击的(以防它出现)。
将此代码放入您的脚本中:
tell application "Safari"
repeat until (do JavaScript "document.readyState" in document 1) is "complete"
end repeat
end tell
脚本编写愉快!
我这里有这个脚本,它在一个未聚焦的 safari 选项卡上加载一个配置文件,并将我想要的文本保存在一个变量中
tell application "Safari" to set the URL of tab 2 of window 1 to "https://URLproduct/" & serialNumber & "/definition"
delay 2.5
然而,有些数据只有在点击按钮后才可用(这是一个带有按钮的弹出式窗口,这使得另一个文本在您按下 "OK" 之前无法访问,也这个按钮并不总是在这里)
按钮 HTML 是:
<button class="btn btn-primary" autofocus="" ng-click="ok()" tabindex="0">OK</button>
我用这个脚本按下:
do JavaScript "document.getElementsByClassName('btn btn-primary')[1].click();" in tab 2 of window 1
奇怪的是有时工作有时不工作,我不能添加太多延迟
我可以添加一个脚本来等待此按钮 ('btn btn-primary') 可用(完全加载),然后再次尝试使用我的第一个脚本获取文本吗?
-- 也许我可以添加类似
的内容tell application "Safari"
tell document 1
repeat until ("btn btn-primary" is in its source)
delay 0.5
end repeat
end tell
end tell
然后是点击脚本?
是的,您可以在页面加载后开始执行脚本。这确保按钮是可点击的(以防它出现)。
将此代码放入您的脚本中:
tell application "Safari"
repeat until (do JavaScript "document.readyState" in document 1) is "complete"
end repeat
end tell
脚本编写愉快!