如何使用 UITest 和 Swift 3 单击编辑菜单

Posted

技术标签:

【中文标题】如何使用 UITest 和 Swift 3 单击编辑菜单【英文标题】:How do I click on an edit menu using UITest and Swift 3 【发布时间】:2016-10-10 20:45:13 【问题描述】:

在我的 UITest 中,我可以长按一个文本视图,它会弹出一个编辑菜单,其中包含“选择”和“全选”两个选项。我该如何选择其中之一?这是我的代码,它在第三行失败。

app.textViews["noteText"].tap()
app.textViews["noteText"].press(forDuration: 2)
app.staticTexts["Select All"].tap()

【问题讨论】:

失败是什么? UI 测试失败 - 找不到“全选”静态文本的匹配项 在 LLDB 控制台中,当您在该行设置断点时,po app 命令的输出是什么? 输出太长,无法作为评论发布,但没有提及“全选”。 app.descendantsMatchingType(.Any).elementMatchingType(.Any, identifier: "Select All") 怎么样? 【参考方案1】:

Swift 2.3 答案:app.descendantsMatchingType(.Any).elementMatchingType(.Any, identifier: "Select All")

Swift 3 答案:app.descendants(matching: .any).element(matching: .any, identifier: "Select All").tap()

不清楚为什么不同的查询会返回不同的结果,但根据我的经验,这个查询始终返回所有查询的最大超集,并且只要标识符在视图层次结构中是全局唯一的,就可以使用。

【讨论】:

以上是关于如何使用 UITest 和 Swift 3 单击编辑菜单的主要内容,如果未能解决你的问题,请参考以下文章

Uitest 刷新控制 swift

Swift UITest - 将使用两者之一。哪个是未定义的

在记录的 Xcode UITest 会话中,vei 字符(向下插入符号)是啥意思?

用于分离 UITest 代码的 Swift 条件语句

Xcode 7 中的 UITest:如何测试键盘布局(keyboardType)

如何创建一个在 XCTest 中定义按钮或文本字段的 swift 文件?