Fastlane扫描“无法合成事件”,在运行UI测试时,可从Xcode运行

问题描述 投票:1回答:1

我有一些针对我的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个回答
0
投票

所以我最终弄清楚了。测试工作正常。

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

© www.soinside.com 2019 - 2024. All rights reserved.