我为我的 Swift 项目(iOS 应用程序,Swift 5(准备了一些 UI 测试,在从 Xcode 运行它们时可以工作;但是当我使用fastlane scan
运行它们时,它们总是在涉及键入文本字段的每个测试的同一点失败,我不确定为什么。
失败来自填写UITextField,然后尝试点击下一个并填写。
例:
app.textFields[“identifierOne”].tap()
app.textFields[“identifierOne”].typeText(“Text to Type”)
app.textFields[“identifierTwo”].tap()
app.textFields[“identifierTwo”].typeText(“Text to Type”)
这导致:
无法合成事件:元素和任何后代都没有键盘焦点。事件调度快照:文本字段,标签:"标识符二",占位符值:"一些"值">
正如我之前提到的,这在从 Xcode 运行完全相同的测试时有效。我对这个不知所措,非常感谢任何帮助。
所以我最后想通了。测试工作正常。
但是我的扫描电话中有disable_slide_to_type: true
,这似乎导致了一些奇怪的行为。
在尝试键入之前,我还添加了以下内容:
extension XCUIElement {
var isFocused: Bool {
let isFocused = (self.value(forKey: "hasKeyboardFocus") as? Bool) ?? false
return isFocused
}
}
if textField.isFocused == false {
textField.tap()
}
它现在似乎在 100% 的时间内工作。