【问题标题】:How Do I Automate a Safari click with AppleScript without going through JavaScript?如何在不通过 JavaScript 的情况下使用 AppleScript 自动执行 Safari 点击?
【发布时间】:2011-07-13 23:25:34
【问题描述】:

我正在开发一个项目,该项目使 Safari 自动化运行一批测试脚本。我正在使用 safariwatir 进行测试。有时,可能由于一些奇怪的 JavaScript 问题,脚本会失败。例如,单击链接的脚本将不起作用,因为 JavaScript 回调附加到链接,并且 safariwatir 无法正确调用 JavaScript 回调。当用户手动单击该链接时,该功能按预期工作。

我查看了 safariwatir 的实现,发现自动点击是通过 JavaScript 实现的。

我试图研究如何使用 AppleScript 来自动单击按钮或链接,但这种方法似乎很脆弱,因为为了能够访问 AppleScript 中的按钮,看起来我必须知道它在GUI 层次结构(“单击按钮 3,在窗口 1 内,组 5,滚动条 6”)。

我在考虑这种方法是否更好,但我不确定是否可行: 1.给定一个HTML元素的ID,获取对应的GUI元素 2.在从#1获得的GUI元素上模拟鼠标点击

我几乎可以肯定上述 #1 目前是不可能的。但是,如果它是可行的(即使它还没有在任何现有的工具包中实现)我会很感激关于如何做到这一点的指针。

谢谢!

【问题讨论】:

    标签: safari applescript


    【解决方案1】:

    我同意手动找出层次结构很困难,这样您就知道使用 applescript 点击什么。但是,如果您知道要单击的位置,则可以改为按位置执行单击。我认为 javascript 可以帮助你找到位置...一旦你找到一个对象,你就可以得到它的位置。

    另一个问题,有时编写系统事件脚本来执行点击也不能很好地工作,如果你在这里发现这种情况,那么我建议使用其他工具来执行物理点击。我已经开发了命令行工具来执行点击并在系统事件点击不起作用时使用它。您需要知道此工具的屏幕位置才能工作。也许它会帮助你。你可以找到那个工具here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多