我有一些针对我的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”)
这导致:
无法合成事件:元素或任何子代都没有键盘焦点。事件分发快照:TextField,标签:“ identifierTwo”,placeholderValue:“ Some'Value”'
正如我之前提到的,当从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%的时间都在工作。