5

我有一个无法找到特定图像的 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

找到了许多图像,但没有找到正在测试的特定图像。

是否有解决此问题的替代方法?

4

0 回答 0