AppleScript Safari:页面完全加载后单击按钮

AppleScript Safari:页面完全加载后单击按钮,safari,click,applescript,getelementsbyname,Safari,Click,Applescript,Getelementsbyname,我这里有一个脚本,它在一个未聚焦的safari选项卡上加载一个配置文件,并将我想要的文本保存在一个变量中 tell application "Safari" to set the URL of tab 2 of window 1 to "https://URLproduct/" & serialNumber & "/definition" delay 2.5 但是,某些数据只有在单击按钮后才可用(这是一个带有按钮的弹出式覆盖,这使得在按下“确定”之前无法访问另一个文本,

我这里有一个脚本,它在一个未聚焦的safari选项卡上加载一个配置文件,并将我想要的文本保存在一个变量中

tell application "Safari" to set the URL of tab 2 of window 1 to "https://URLproduct/" & serialNumber & "/definition"
    delay 2.5
但是,某些数据只有在单击按钮后才可用(这是一个带有按钮的弹出式覆盖,这使得在按下“确定”之前无法访问另一个文本,而且此按钮并不总是在此处)

按钮HTML是:

<button class="btn btn-primary" autofocus="" ng-click="ok()" tabindex="0">OK</button>
奇怪的是,有时工作有时不工作,我不能增加太多的延迟

我是否可以添加一个脚本,等待此按钮('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
快乐的脚本

    tell application "Safari"
        repeat until (do JavaScript "document.readyState" in document 1) is "complete"
        end repeat
    end tell