大佬教程收集整理的这篇文章主要介绍了ios – 我的XCode UI测试如何检测屏幕是否已更改?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
第一个测试有假阴性,因为连续的屏幕可以有相同的导航栏标签(我正在走的代码不是我的).第二个测试有误报,因为有时单击表格元素不会转换到另一个表/屏幕,而是向当前屏幕添加额外的元素.
做了一些阅读后,似乎使用辅助功能标签可能是要走的路.所以我在应用程序代码(在viewDidAppear中)为导航栏的辅助功能标签设置一个UID,然后在UI测试代码中进行测试.感觉这样应该可以工作,但是我只会在测试代码中回复一个零值.
在UI测试中,我会自由地承认我是一个noob,主要是剪切/粘贴/调整其他人的代码,而不会对我在做什么有一个清晰的了解.所以我可能会在辅助功能标签代码本身和可能在概念层面检测屏幕已经改变了一些天真的错误.也许有更简单/更惯用的我可以做的事情.
在应用程序中:
- (void)viewDidAppear: (BOOL)animated { [super viewDidAppear: animated]; //... UINavigationBar* navBar = self.navigationController.navigationBar; if( navBar ) { static NSInteger s_UID = 0; navBar.topItem.accessibilityLabel = [NSString StringWithFormat:@"UID-%ld",s_UID++]; } }
在XCTest UI测试中:
- (NSString*) navBarAccessibilityLabel: (XCUIApplication*) app { NSString* result = NULL; XCUIElementQuery *navBars = app.navigationBars; XCUIElement* firstElem = [navBars.staticTexts elementBoundByIndex:0]; if( firstElem ) { result = (NSString*)firstElem.accessibilityLabel; // This is always nil } return result; }
请注意,发现firstElem IS,并且我能够提取firstElem.label从它非常愉快.
任何帮助赞赏.
左键单击UI测试并开始录制,模拟器将启动,您可以单击模拟器中的元素,如果该元素可访问Xcode将在testExample方法内为您写入测试代码.
或者在模拟器中运行应用程序,并打开辅助功能检查器,并将其悬停在元素上,因为详细信息将显示在检查器中.
除此之外,我想在你的情况下,您可以通过为每个屏幕添加导航项标题来验证这一点,即self.navigationItem.title = @“myScreen”;
然后用断言验证屏幕,即
// let app = XCUIApplication() // Swift UIApplication *app = [UIApplication alloc] init]; // Objective-C XCTAssertEqual(app.navigationBars.element.identifier,"myScreen") // Don't forget to import class XCTest
以上是大佬教程为你收集整理的ios – 我的XCode UI测试如何检测屏幕是否已更改?全部内容,希望文章能够帮你解决ios – 我的XCode UI测试如何检测屏幕是否已更改?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。