【问题标题】:Fastlane Scan "Failed to synthesize event" when running UI Tests, works from Xcode运行 UI 测试时,Fastlane 扫描“无法合成事件”,适用于 Xcode
【发布时间】:2020-05-25 09:51:31
【问题描述】:

我的 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 运行完全相同的测试。我对此一无所知,非常感谢任何帮助。

【问题讨论】:

标签: ios swift uitextfield xcode-ui-testing fastlane


【解决方案1】:

所以我最终想通了。测试运行良好。

但我的扫描调用中有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% 的时间都在工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2018-05-12
    • 2016-07-28
    • 1970-01-01
    相关资源
    最近更新 更多