我正在使用UI测试来检查与目标应用程序共享文件。为此,我使用multi-app UI testing如下:
UITestsHelper
是一个简单的基于文档的应用模板将文件安装在其容器中,导航到该文件并共享目标应用的文件]问题是,当打开共享表时,没有可用于查找将文件共享到目标应用程序的单元格的有意义的文本,在本例中显示为“ MyApp”。
检查日志中的UI层次结构时,这是相关部分:
ScrollView, {{0.0, 617.0}, {414.0, 132.0}}
Cell, {{13.0, 617.0}, {78.0, 118.5}}, label: 'AirDrop'
Cell, {{106.5, 617.0}, {78.0, 118.5}}, label: 'Nachrichten'
Cell, {{200.0, 617.0}, {78.0, 118.5}}, label: 'Mail'
Cell, {{293.5, 617.0}, {78.0, 131.5}}, label: 'Aktivität'
Cell, {{387.0, 617.0}, {78.0, 131.5}}, label: 'Aktivität'
如您所见,系统应用程序和服务(例如AirDrop,消息和邮件)具有有意义的标签(此处使用德语,因为这是系统语言)。第三方应用仅显示标签为“活动”(德语中的Aktivität)。
我现在正在盲目地点击第四个单元,作为选择第一个非系统应用程序的方法,但是我发现这非常脆弱。
是否有更可靠的方法将文件共享到目标应用程序?
我也发现了这个错误。我以另一种方式解决它-找到所有这些“活动”单元格(app.cells.matching(identifier: "Activity").allElementsBoundByIndex
),一个接一个地点击它们,直到找到所需的单元格为止(我通过查看目标应用程序.state
对其进行了检查)