我正在使用Apple的UI自动化类。我尝试自动化的(桌面)应用程序有多个窗口。使用UIAElement
,我可以获得光标当前所在的元素。但是,我注意到有时窗口显示为mainWindow()
,有时窗口的名称更长。{我假设这是因为mainWindow()
是当前焦点的窗口。
有没有办法获得"规范" mainWindow()
的名称?例如:假设我有target.processes()["MyApp"].windows()["Window1"]
和target.processes()["MyApp"].windows()["Window2"]
,我目前专注于Window2
。因此,Window2
会显示为target.processes()["MyApp"].mainWindow()
- 但我想找到一种方法将mainWindow()
解析为全名,可以这么说。
答案 0 :(得分:0)
首先,您可以为应用程序内的窗口设置唯一标识符:
[window1 setAccessibilityIdentifier:@"Window1"];
[window2 setAccessibilityIdentifier:@"Window2"];
然后,您应该能够在测试脚本中访问这些标识符。根据您当前使用的窗口,.name()
应该返回Window1
或Window2
:
var mainWindowName = target.frontMostApp().mainWindow().name();
此外,这里是文档的链接,以备不时之需:UI Automation JavaScript Reference