如何在不通过JavaScript的情况下使用AppleScript自动执行Safari单击?

时间:2011-07-13 07:30:31

标签: safari applescript

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

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

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

我在想这种方法是否更好,但我不确定它是否可行: 1.给定HTML元素的ID,获取相应的GUI元素 2.模拟鼠标点击从#1

获得的GUI元素

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

谢谢!

1 个答案:

答案 0 :(得分:1)

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

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