Ios 刷新应用程序';屏幕更新后的s XUIElementQuery
我正在为我的应用程序编写UI测试。 更新屏幕后,如何刷新Ios 刷新应用程序';屏幕更新后的s XUIElementQuery,ios,xcode-ui-testing,Ios,Xcode Ui Testing,我正在为我的应用程序编写UI测试。 更新屏幕后,如何刷新应用程序按钮列表/应用程序其他元素 例如: 我正在按登录屏幕上的登录按钮,等待服务器响应。 响应到达后,我看到另一个屏幕,需要按下该屏幕上的按钮,但button.exists==NO 每次屏幕更新时,我是否应该创建新的应用程序实例([[XCUIApplication alloc]init])?您应该等待登录操作完成,等待登录屏幕上的唯一元素不存在 这将确保当屏幕内容更改时,XUIApplication上可用的视图层次结构将被刷新。您应该等待
应用程序按钮列表
/应用程序其他元素
例如:
我正在按登录屏幕上的登录按钮,等待服务器响应。
响应到达后,我看到另一个屏幕,需要按下该屏幕上的按钮,但button.exists==NO
每次屏幕更新时,我是否应该创建新的应用程序实例(
[[XCUIApplication alloc]init]
)?您应该等待登录操作完成,等待登录屏幕上的唯一元素不存在
这将确保当屏幕内容更改时,XUIApplication上可用的视图层次结构将被刷新。您应该等待登录操作完成,等待登录屏幕上不存在唯一的元素
这将确保当屏幕内容更改时,XUIApplication上可用的视图层次结构会被刷新。您应该在登录accessibilityIdentifier后授予要点击的按钮,然后等待该按钮存在。这确保了在加载新UI之前,您不会尝试与应用程序交互,而不仅仅是旧UI消失了
根据Joe Masilotti的优秀指南,我强烈建议将“等待此元素出现”功能提取到测试助手中(尽管您必须在ObjC中重新实现,正如他在Swift中所写的那样)。您应该在登录accessibilityIdentifier后授予想要点击的按钮,然后等待它的存在。这确保了在加载新UI之前,您不会尝试与应用程序交互,而不仅仅是旧UI消失了 我强烈建议按照Joe Masilotti的优秀指南,将“等待此元素出现”功能提取到测试助手中(尽管您必须在ObjC中重新实现它们,正如他在Swift中编写的那样)
XCUIElement *logInButton = app.buttons["signInButton"];
// Tap the log in button
[logInButton tap];
// Wait for the login operation to complete
NSPredicate *notExistsPredicate = [NSPredicate predicateWithFormat:@"exists == false"];
[self expectationForPredicate:notExistsPredicate evaluatedWithObject:logInButton handler: nil];
[self waitForExpectationsWithTimeout:10.0 handler: nil]; // Adjust timeout as needed