Fastlane Scan "Failed to synthesize event" when 运行 UI 测试,从 Xcode 开始工作

Fastlane Scan "Failed to synthesize event" when running UI Tests, works from Xcode

我的 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”)

这导致:

Failed to synthesize event: Neither element nor any descendant has keyboard focus. Event dispatch snapshot: TextField, label: ‘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% 都在工作。