在 XCTest 的 UI 测试中从 TextView 获取文本

Posted

技术标签:

【中文标题】在 XCTest 的 UI 测试中从 TextView 获取文本【英文标题】:Getting text from TextView in UI test in XCTest 【发布时间】:2016-11-16 12:16:42 【问题描述】:

我正在尝试使用 XCode 进行 ios UI 测试。我的测试应用程序具有 UITextView 元素和可访问性标识displayTextView

我尝试了简单的测试,点击这个元素,输入一些文本,然后通过以下方式检查结果:

XCUIElement *textView = app.textViews[@"displayTextView"];
[textView tap];
[textView typeText:@"9.9"];

它有效。但是我无法从文本视图中获取输入的文本。我尝试通过以下方式做到这一点:

XCTAssertEqual([textView.accessibilityValue isEqualToString:@"9.9"]);

但它似乎不正确,因为 textView.accessibilityValue 为空。 什么方法适合获取输入的文本?

【问题讨论】:

【参考方案1】:

我找到了答案。正确的做法是:

XCTAssert([textView.value isEqualToString:@"9.9"]);

【讨论】:

【参考方案2】:

let text = textView.value as! String

【讨论】:

完整答案:XCTAssertEqual("9.9", textView.value as? String)【参考方案3】:

我用过:

let expectedValue = "Hello World!"
XCTAssert(app.staticTexts[expectedValue].isHittable)

使用这种方法,我们查找显示expectedValue 的标签,并验证它是否可见...

【讨论】:

以上是关于在 XCTest 的 UI 测试中从 TextView 获取文本的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Swift 中从 XCTest 打开 NSStream

如何在 XCTest 框架的 UI 测试中测试数据?

XCTest 中的测试通知(UI 测试)

iOS 中的 XCTest 和 UI 测试

在 XCTest UI 测试中单击 NSToolbarItem

XCTest 中查询的父母和兄弟姐妹(UI 测试)