Xcode UI 测试允许系统警报系列

2023-12-29

我有问题,如果我尝试允许系列系统警报,只工作一次,而下一个警报不“允许” 我在谷歌上搜索了更多时间,并且知道了那个帖子:(Xcode 7 UI 测试:如何在代码中消除一系列系统警报 https://stackoverflow.com/questions/32148965/xcode-7-ui-testing-how-to-dismiss-a-series-of-system-alerts-in-code) 没什么..不工作。 这是我当前的代码,第一个警报成功“允许”,未检测到下一个警报。

XCUIApplication *app = [[XCUIApplication alloc] init];
app.launchEnvironment = @{
        @"isUITest" : @YES,
        @"withFakeData" : fakeData
};
[app launch];


for (int i = 1; i <= self.possibleSystemAlerts; i++) {
    NSLog(@"%d", i);
    XCTestExpectation *expectation = [self expectationWithDescription:@"High Expectations"];
    id monitor = [self addUIInterruptionMonitorWithDescription:@"Push notifications" handler:^BOOL(XCUIElement *_Nonnull interruptingElement) {
        XCUIElement *element = interruptingElement;
        XCUIElement *allow = element.buttons[@"Allow"];
        XCUIElement *ok = element.buttons[@"OK"];

        if ([ok exists]) {
            [ok tap];
            [expectation fulfill];
            return YES;
        }

        if ([allow exists]) {
            [allow forceTap];
            [expectation fulfill];
            return YES;
        }
        return NO;
    }];
    [app tap];
    [self waitForExpectationsWithTimeout:6.0 handler:^(NSError *error) {
        if (error) {
            NSLog(@"Timeout Error: %@", error);
        }
    }];
    [self removeUIInterruptionMonitor:monitor];
}

此致, 伊万.

UPD:

好的,我找到了解决方案,如何在第一次警报后尝试关闭第二次(感谢这个网站:)只需要始终返回“否”。

但另一个问题...

    t =    10.18s                     Find: Descendants matching type Alert
    t =    10.18s                     Find: Identity Binding
    t =    11.19s                     Find the "Allow “MyApp” to access your location while you use the app?" Alert (retry 1)
    t =    11.19s                         Snapshot accessibility hierarchy for com.apple.springboard
    t =    11.26s                         Find: Descendants matching type Alert
    t =    11.26s                         Find: Identity Binding
    t =    12.27s                     Find the "Allow “MyApp” to access your location while you use the app?" Alert (retry 2)
    t =    12.27s                         Snapshot accessibility hierarchy for com.apple.springboard
    t =    12.33s                         Find: Descendants matching type Alert
    t =    12.34s                         Find: Identity Binding
    t =    12.42s                     Assertion Failure: UI Testing Failure - No matches found for "Allow “MyApp” to access your location while you use the app?" Alert
Query input was {(
    Alert 0x7febe8731630: traits: 72057602627862528, {{25.0, 193.0}, {270.0, 182.0}}, label: '“MyApp” Would Like to Send You Notifications'
)}

他尝试关闭第三个通知,而不是第二个,当然他没有发现这个系统警报......


在应用程序启动之前,一一创建警报处理程序。另外,请确保tap()在与警报交互之前,在应用程序上的任何位置。这是 Xcode 中的一个已知错误。

addUIInterruptionMonitor(withDescription:"First Dialog") { (alert) -> Bool in
    alert.buttons["Allow"].tap()
    return true
}

addUIInterruptionMonitor(withDescription:"Second Dialog") { (alert) -> Bool in
    alert.buttons["Allow"].tap()
    return true
}

addUIInterruptionMonitor(withDescription:"Third Dialog") { (alert) -> Bool in
    alert.buttons["Allow"].tap()
    return true
}

let app = XCUIApplication()
app.launch()

app.tap()
app.tap()
app.tap()

这三个点击将连续触发每个警报处理程序,而不会实际触发应用程序中的任何事件。另请注意,每个中断处理程序都没有指定anything关于警报,只有确认按钮。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xcode UI 测试允许系统警报系列 的相关文章

  • 将永久字符添加到 UITextField

    有没有办法将字母永久添加到 UITextField 中 用户无法删除它 我想添加一个字符 用户无法删除它 但他们仍然可以在之后添加字母 Cheers 附注这是适用于 iOS 的 A UITextField有一个名为 应该更改范围内的字符 的
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • 使用 iPhone 中的地图视图读取当前位置名称

    我读取了当前位置的纬度和经度值 然后成功将该位置固定在 iPhone 中 现在我想使用这个纬度和经度值读取该地名 我使用以下代码来读取查找当前位置 void mapView MKMapView mapView1 didUpdateUserL
  • 模块未使用库演化支持进行编译;使用它意味着无法保证二进制兼容性

    最近我遇到了 SDK 的编译时警告 这是否意味着它不是使用目标设置 构建用于分发的库 构建的 你需要设置Build Libraries for Distribution在项目中Build Settings to No然后它就会消失
  • 在 WKWebView 中禁用放大手势

    我正在寻找一种方法来禁用 WKWebView 的 iOS 实现上的 捏合缩放 放大手势 OS X 有一个 magnification BOOL 属性 但在 iOS 上似乎不可用 WKWebView h if TARGET OS IPHONE
  • 如何知道我的应用程序使用了多少 iCloud 空间?

    有没有办法查看我的应用程序正在备份到 iCloud 的内容以及它消耗了多少内存 Settings gt iCloud gt Storage Backup gt Manage Storage将显示正在备份的总计内容 iOS 会备份位于应用程序
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • UIPanGestureRecognizer 对坐标的限制

    我在主 UIView 中添加了一个子视图 称为panel 并且我向其中添加了gestureRecognizer 因为我希望它只能在Y轴上拖动并且只能在某些限制下 即160 300 超过300它不能拖动 我以这种方式实现了手势处理 IBAct
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 根据 iOS 版本使用不同的类实现?

    iOS 11 最近添加了一个我想使用的新功能 但我仍然需要支持旧版本的 iOS 有没有一种方法可以将同一个类编写两次 并让较新版本的 iOS 使用该类的一个版本 而旧版本的 iOS 使用另一个版本 注 最初我用的是if available
  • UIImageJPEGRepresentation 在视网膜显示屏上提供 2x 图像

    我有这段代码 它创建一个图像 然后向其添加一些效果并缩小其大小以使其largeThumbnail UIImage originalImage UIImage imageWithData self originalImage thumbnai
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • Swift 中的 import 语句是否有相关成本?

    阅读字符串宣言 我看到一个段落 https github com apple swift blob master docs StringManifesto md batteries included关于避免Foundation不需要的时候导
  • iOS - UITableViewCell 使文本加粗

    我有一个字符串 NSString userInfo James Johnson james 我想做的就是大胆James Johnson并保留 james正常字体 所以我尝试过的是使用NSAttributedString但为了完成这个过程 我

随机推荐

  • 有哪些第三方选项可用于在 C 中处理字符串?

    一段时间以来 我一直意识到我用 Python 编写的代码比用 C 编写的代码快 17 倍 我想我有点以为自己算不上一个程序员 直到我真正思考并意识到唯一的问题是我可以不处理 C 字符串 字符数组 字符指针 任何东西 我对它们有一个障碍 操纵
  • SQL INSERT INTO 从多个表

    这是我的表1 NAME AGE SEX CITY ID Clara 22 f New York 1 Bob 33 m Washington 2 Sam 25 m Boston 3 这是我的表2 NUMBER ID 555 1111 1 55
  • 将代码片段分配给 Visual Studio 中的键盘快捷键

    有人知道如何将快捷键分配给特定的代码片段吗 I would like to assign for instance CTRL K CTRL J to a region snippet 因此 通过能够 选择文本 press CTRL K CT
  • 同步块不工作

    此练习直接来自 Kathy Seirra 和 Bert Bates 的 SCJP 同步代码块 在本练习中 我们将尝试同步代码块 在该代码块中 我们将获得一个对象的锁 以便其他线程在该代码块执行时无法修改它 我们将创建三个线程 它们都将尝试操
  • 可以从两个查询中执行一个查询吗?

    我有两个疑问 1 首先我发现所有都是独一无二的name并计算每个唯一的name in Table 2 第二 我得到每个唯一的行name Code sql1 SELECT name count name as count FROM SELEC
  • 如何在 Android 应用程序中设置 Holo 深色主题?

    如何在我的应用程序中设置黑暗全息主题 这时我得到了这个 但是当我将其更改为 我收到一个错误error Error retrieving parent for item No resource found that matches the g
  • 表示数字的最小位数

    找出表示某个随机 int 数需要多少位的最有效方法是什么 例如数字 30 000 用二进制表示 111010100110000 所以需要15位 您可以尝试 Math Floor Math Log 30000 2 1 or int Math
  • SpringDoc - 如何以编程方式添加模式

    我正在使用 SpringDoc 并尝试以编程方式向 OpenApi 添加架构 但没有成功 Bean public OpenAPI customOpenAPI Schema mySchema new Schema mySchema type
  • EXCEL:仅当 B 列 = X 时才从 A 列复制单元格 -> C,但仅使用 1 列

    我有两列数据 COL A COL B AAAA PM BBBB PM CCCC P DDDD M EEEE PM 我想通过过滤列 A 来创建第三列 前提是列 B PM 但我想通过仅添加一列来实现这一点 即 没有逐步 多列方法 结果如下 CO
  • 理解 scikit-learn 中数据的格式

    我正在尝试使用 Python 3 x 中的 scikit learn 进行多标签文本分类 我有 libsvm 格式的数据 我正在使用它加载load svmlight file模块 数据格式是这样的 314523 165538 76255 1
  • 如何在SceneKit / ARKit中使用SCNTechnique创建“蒙面”传送门效果?

    我正在尝试了解如何将 SCNTechnique 与 Scenekit 结合使用 我试图创建的效果可以在 Unity 中轻松实现 方法是向两种材质添加自定义着色器 使具有 过滤 着色器的对象仅在通过其他着色器 门户 看到时才可见 我按照本教程
  • CMake:如何在 Linux 中将一个目标/文件打包到多个包中?

    我正在开发一个生成相当多可执行文件 库的项目 和配置 需要打包到不同的包中进行部署 问题是 这些目标 文件的包含不是相互的 独家的 一个目标 文件可以属于多个包 我正在使用 CMake 2 8 9 并尝试 CPack 我知道这是可行的 安装
  • 是否可以使用 Convert-sass 转换整个文件夹? (scss 到 sass)

    我在一堆 SCSS 格式的文件夹中有一堆文件 我需要将其全部转换为 SASS 格式 并且我知道 sass 有一个特定的命令来转换 sass 但是我不确定是否可以转换整个文件夹 其中包含文件夹 如果可能的话 那么如何convert sass
  • yii2 时区格式化程序中的问题

    php ini 中的时区是 UTC 系统时区为UTC yii 默认时区是 UTC 但在保存到数据库之前 我的日期时间属性会转换为我的时区 亚洲 加尔各答 例如 UTC 时间 12 00 小时 我的输入 17 30hrs 我在 db 中期望的
  • 如何以编程方式关闭 Android 手机?

    是否可以通过编程方式关闭移动设备 那是不使用 su 命令 这是可能的 但你需要一个RootedAndroid 设备Superuser使用权 除非您的应用程序已使用 Root 签名 否则您无法在没有 Root 的情况下执行此操作System
  • 模板专业化是否扩展或覆盖通用模板?

    template
  • 让 Android 应用程序监听共享链接

    当用户共享来自其他应用程序 如浏览器 的 URL 时 我希望我的 Android 应用程序显示为选项 我如何注册我的应用程序来做到这一点 我该如何对链接共享做出反应 多谢 Edit 我尝试过像这样使用 IntentFilter 但没有成功
  • 如何使用audio_service和just_audio在Flutter中查找当前歌曲时长

    当您设置MediaItem in 音频服务 https pub dev packages audio service你还不知道歌曲时长 因为只是音频 https pub dev packages just audio目前还没有任何更改可以告
  • jQuery 与 ExtJS 兼容吗?

    我相信 Ext js 使用了 jQuery 但我不确定 有谁知道是否与 jQuery 和 Ext js 完全兼容 Ext js 完全独立于 jQuery 因此不以任何方式依赖 jQuery 不知道 完全兼容性 是什么意思 但您可以在同一页面
  • Xcode UI 测试允许系统警报系列

    我有问题 如果我尝试允许系列系统警报 只工作一次 而下一个警报不 允许 我在谷歌上搜索了更多时间 并且知道了那个帖子 Xcode 7 UI 测试 如何在代码中消除一系列系统警报 https stackoverflow com questio