You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在XCTest中如何通过XCUIApplication访问TextEditor组件

SwiftUI TextEditor UI测试访问器说明

SwiftUI的TextEditor在XCUITest中对应的底层元素类型为UITextView,因此你需要填写的正确访问器是textViews。你最开始测试时textViews不生效并非访问器本身错误,通常是前置触发条件缺失导致。

具体使用方案

标准写法(推荐)

首先需要在SwiftUI业务代码中为TextEditor设置和测试代码匹配的accessibility标识:

TextEditor(text: $inputContent)
    .accessibilityIdentifier("Editor") // 标识字符串需和测试代码中保持一致

对应的UI测试完整代码:

let app = XCUIApplication()
app.launch()

let textEditor = app.textViews["Editor"]
textEditor.tap() // 先激活输入框,避免未处于第一响应者导致输入失效
textEditor.typeText("Hello, world")

通用访问器替代方案

如果不确定当前元素的对应类型,可以使用通用访问器查询,无需指定元素类型,只要accessibility标识匹配即可定位到元素:

// 简洁通用写法
let textEditor = app.any["Editor"]

// 等效的完整通用写法
let textEditor = app.descendants(matching: .any)["Editor"]

内容的提问来源于stack exchange,提问作者Ethan Fraser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:24:03