运行XCUITest时未找到使用app.images的XCUIElement

时间:2017-12-13 16:20:29

标签: objective-c swift xcuitest

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

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

是否有替代方案可以解决这个问题?

0 个答案:

没有答案