UI 测试 - 访问相机

Posted

技术标签:

【中文标题】UI 测试 - 访问相机【英文标题】:UI Testing - Access the Camera 【发布时间】:2016-09-26 13:47:08 【问题描述】:

当我第一次在真实设备上的 UI 测试中触发应用程序摄像头时,我会收到权限警报框。为了避免崩溃并遵循我的 ui 测试步骤,我尝试了以下步骤。但仍然无法按我的意愿工作。有什么办法可以避免崩溃?

XCUIApplication *app = [[XCUIApplication alloc] init];
[app.buttons[@"Open Camera"] tap];

XCUIElement *alert = app.alerts[@"\u201cSampleAppObjC\u201d Would Like to Access the Camera"].buttons[@"OK"];
if (alert) 
    [alert tap];

...
[app.buttons[@"Flash"] tap];
[app.buttons[@"Help"] tap];

【问题讨论】:

【参考方案1】:

我找到了一种方法来允许第一次触发凸轮的权限

//system camera alert for permission
id systemAlertMonitor = [self addUIInterruptionMonitorWithDescription:@"Alert Handler" handler:^BOOL(XCUIElement * _Nonnull interruptingElement) 

if (interruptingElement.buttons[@"OK"].exists) 
        [interruptingElement.buttons[@"OK"] tap];
        //Return YES if handled the alert
        return YES;
    
    return NO;
];

【讨论】:

以上是关于UI 测试 - 访问相机的主要内容,如果未能解决你的问题,请参考以下文章

Xcode UI 测试:我可以使用 UI 测试脚本访问目标应用程序文件夹吗?

从 XCode UI 测试目标访问项目文件

如何从 UI 测试访问 App Delegate?

如何从 Xcode UI 测试访问核心数据存储?

在 UI 测试中访问 MPMoviePlayerController 的播放状态

在 iPhone 的 UI 自动化测试中访问 JAVASCRIPT 变量