我有一个无法找到特定图像的XCUITest,但它在屏幕上完全可见。(模拟器和物理设备)
我如何解决方法或使UIImage可以访问测试? 我要验证的是元素在屏幕上是否可见和可触摸。
UIImage作为子视图添加到UITableView中 - 它放在TableView的底部。
- (void)viewDidLoad {
[super viewDidLoad];
// portions of code left out here
_aView = [[UIImageView alloc] initWithFrame:CGRectZero];
[[self aView] setContentMode:UIViewContentModeScaleAspectFit];
[[self aView] setImage:[UIImage imageNamed:IMG_NAME]] ;
[[self tableView] addSubview:[self aView]];
UIImageView后来布局了:
- (void) viewWillLayoutSubviews {
// portions of code left out here
[[self aView] setFrame:CGRectMake(0, MAX([self tableView].contentSize.height - 41 ,[self tableView].bounds.size.height - 41) , 180, 30)];
[[self aView] setCenter:CGPointMake([self tableView].center.x, [self aView].center.y)];
然后在运行测试时:
let app = XCUIApplication()
//this works
let tapString = localizedString("skip")
let skipButton = app.buttons[tapString].firstMatch
if (skipButton.exists) {
skipButton.tap()
}
let theImage = app.images["img.png"]
let doesExist = theImage.exists //<< it never exists
还要进行调试并打印所有图像 不显示图像。我在doExists的行上设置了一个断点 在调试窗口中,我运行命令:
po app.images
找到了许多图像,但没有找到受测试的特定图像。
是否有替代方案可以解决这个问题?