我正在开发一个项目,该项目可以自动运行Safari来运行一批测试脚本。我使用safariwatir来驱动测试。有时,可能由于一些奇怪的JavaScript问题,脚本会失败。例如,单击链接的脚本将无法工作,因为链接附加了JavaScript回调,并且JavaScript无法正确调用safariwatir回调。当用户手动单击该链接时,功能将按预期工作。
我研究了safariwatir的实现,了解到自动化点击是通过JavaScript实现的。
我试图研究如何使用AppleScript自动单击按钮或链接,但这种方法似乎很脆弱,因为为了能够访问AppleScript中的按钮,我看起来必须知道它在图形用户界面层次结构中的位置(“单击按钮3,在窗口1内,组5,滚动条6")。
我在想这种方法是否更好,但我不确定它是否可行: 1.给定一个HTML元素的ID,获取相应的GUI元素2.在从#1获得的GUI元素上模拟鼠标单击
我几乎可以肯定,上面的#1目前是不可能的。但是,如果它是可行的(即使它还没有在任何现有的工具包中实现),我将非常感谢关于如何做到这一点的指导。
谢谢!
发布于 2011-07-13 23:18:54
我同意手动弄清楚层次结构是很困难的,这样你就可以知道用applescript点击什么。但是,如果您知道要单击的位置,则可以按位置执行单击。我觉得javascript可以帮你找到位置...一旦你定位了一个物体,你就可以得到它的位置。
另一个问题是,有时编写系统事件脚本来执行点击也不能很好地工作,如果你在这里发现了这种情况,那么我建议使用另一个工具来执行物理点击。我已经开发了命令行工具来执行点击,并在系统事件点击不起作用时使用它。您需要知道此工具的屏幕位置才能工作。也许它会对你有所帮助。您可以找到该工具here。
https://stackoverflow.com/questions/6675508
复制相似问题