gpt4 book ai didi

ios - 如何在 Xcode 的 UI 测试中检查是否存在从网络显示的静态文本?

转载 作者:IT王子 更新时间:2023-10-29 05:14:13 25 4
gpt4 key购买 nike

我正在使用 Xcode 7 XCTest 中引入的 UI 测试 API。在我的屏幕上,我有一段从网络加载的文本。

如果我简单地用 exists 属性检查它,测试就会失败。

XCTAssert(app.staticTexts["Text from the network"].exists) // fails

如果我首先将点击或任何其他事件发送到文本,它确实有效:

app.staticTexts["Text from the network"].tap()
XCTAssert(app.staticTexts["Text from the network"].exists) // works

看起来如果我只是调用 exists 它会立即评估它并失败,因为文本尚未从网络下载。但我认为当我调用 tap() 方法时,它会等待文本出现。

是否有更好的方法来检查是否存在从网络传送的文本?

类似的东西(这段代码将不起作用):

XCTAssert(app.staticTexts["Text from the network"].eventuallyExists)

最佳答案

Xcode 7 Beta 4 添加了对异步事件的原生支持。下面是一个如何等待 UILabel 出现的简单示例。

XCUIElement *label = self.app.staticTexts[@"Hello, world!"];
NSPredicate *exists = [NSPredicate predicateWithFormat:@"exists == 1"];

[self expectationForPredicate:exists evaluatedWithObject:label handler:nil];
[self waitForExpectationsWithTimeout:5 handler:nil];

首先创建一个查询以等待带有文本“Hello, world!”的标 checkout 现。当元素存在时谓词匹配 (element.exists == YES)。然后传入谓词并根据标签对其进行评估。

如果在达到预期之前过了 5 秒,则测试将失败。您还可以附加一个处理程序 block ,在预期失败或超时时调用该处理程序 block 。

如果您正在寻找有关一般 UI 测试的更多信息,请查看 UI Testing in Xcode 7 .

关于ios - 如何在 Xcode 的 UI 测试中检查是否存在从网络显示的静态文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31261286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com