运行 UI 测试时,Fastlane 扫描“无法合成事件”,适用于 Xcode
Posted
技术标签:
【中文标题】运行 UI 测试时,Fastlane 扫描“无法合成事件”,适用于 Xcode【英文标题】:Fastlane Scan "Failed to synthesize event" when running UI Tests, works from 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 运行完全相同的测试。我对此一无所知,非常感谢任何帮助。
【问题讨论】:
这能回答你的问题吗? Xcode UI Testing Error keyboard 【参考方案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% 的时间都在工作。
【讨论】:
以上是关于运行 UI 测试时,Fastlane 扫描“无法合成事件”,适用于 Xcode的主要内容,如果未能解决你的问题,请参考以下文章
iOS Swift UI Tests (XCUITests) 稳定性问题 - fastlane scan