我有一个UI测试,它检查静态文本元素的值,等待几秒钟,然后再次检查以确认更改.起初它没有工作,因为层次结构没有更新.我在日志中注意到了这一点;
使用缓存的辅助功能层次结构
我通过简单地添加一个菜单并打开/关闭它以便合成事件并更新层次结构来为此设置解决方法.
但是,如果有一种方法可以直接清除缓存或强制更新,那就更好了.我还没有在API中找到一个.我错过了什么吗?
有任何想法吗?
这就是我在做的事情;
XCTAssertEqual(app.staticTexts["myText"].label, "Expected 1")
sleep(20)
menu.tap()
sleep(1)
menu.tap()
XCTAssertEqual(app.staticTexts["myText"].label, "Expected 2")
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这一点
XCTAssertEqual(app.staticTexts["myText"].label, "Expected 1")
sleep(20)
app.elements.refresh()
XCTAssertEqual(app.staticTexts["myText"].label, "Expected 2")
Run Code Online (Sandbox Code Playgroud) 检查按钮是否启用后,如何点击它?
我在这里找到了此示例,但不适用于我的情况。
这是一部分代码:
let app = XCUIApplication()
let button = app.buttons["Tap me"]
let exists = NSPredicate(format: "exists == 1")
expectationForPredicate(exists, evaluatedWithObject: button){
button.tap()
return true
}
waitForExpectationsWithTimeout(5, handler: nil)
Run Code Online (Sandbox Code Playgroud)
但通过点击按钮,我的测试失败。谢谢
我正在编写一个提供大量网络请求的应用程序.像往常一样,它们是异步的,即请求方法的调用立即返回,结果通过委托方法或在一些延迟后的闭包中传递.现在,在我的注册屏幕上,我向我的后端发送了一个注册请求,并希望在请求完成时验证是否显示了成功UI.
有哪些选项可以等待请求完成,验证成功UI并且只有在离开测试方法之后?
还有比等待请求完成更聪明的选择吗?
提前致谢!