【问题标题】:AppleScript Safari : Click button after page has fully loadedAppleScript Safari:页面完全加载后单击按钮
【发布时间】:2017-03-22 09:35:32
【问题描述】:

我在这里有这个脚本,它在一个没有焦点的 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>

我用这个脚本按下:

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

那么点击脚本呢?

【问题讨论】:

    标签: safari click applescript getelementsbyname


    【解决方案1】:

    是的,您可以在页面加载后开始执行脚本。这确保按钮是可点击的(以防它出现)。

    将此代码放入您的脚本中:

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

    脚本编写愉快!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 2018-10-15
      • 1970-01-01
      相关资源
      最近更新 更多