我有一个无法找到特定图像的 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
还进行调试并打印所有图像不会显示图像。我在 dosExists 行设置了一个断点,并在调试窗口中运行命令:
po app.images
找到了许多图像,但没有找到正在测试的特定图像。
是否有解决此问题的替代方法?