将mainWindow()解析为全名?

时间:2014-05-16 17:58:26

标签: cocoa ios-ui-automation

我正在使用Apple的UI自动化类。我尝试自动化的(桌面)应用程序有多个窗口。使用UIAElement,我可以获得光标当前所在的元素。但是,我注意到有时窗口显示为mainWindow(),有时窗口的名称更长。{我假设这是因为mainWindow()是当前焦点的窗口。

有没有办法获得"规范" mainWindow()的名称?例如:假设我有target.processes()["MyApp"].windows()["Window1"]target.processes()["MyApp"].windows()["Window2"],我目前专注于Window2。因此,Window2会显示为target.processes()["MyApp"].mainWindow() - 但我想找到一种方法将mainWindow()解析为全名,可以这么说。

1 个答案:

答案 0 :(得分:0)

首先,您可以为应用程序内的窗口设置唯一标识符:

[window1 setAccessibilityIdentifier:@"Window1"];
[window2 setAccessibilityIdentifier:@"Window2"];

然后,您应该能够在测试脚本中访问这些标识符。根据您当前使用的窗口,.name()应该返回Window1Window2

var mainWindowName = target.frontMostApp().mainWindow().name();

此外,这里是文档的链接,以备不时之需:UI Automation JavaScript Reference