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 测试允许系统警报系列 的相关文章

  • Android 和 IOS 是否可以在后台发送短信?

    我想制作一个应用程序 其主要功能取决于发送短信 在我开发 android native 之前 但现在我使用 React Native 来为 IOS 和 Android 制作它 在 Android 中 如果获得用户许可 可以在后台发送短信 但
  • 为什么使用自动布局时视图的框架宽度始终为 600 x 600

    我正在制作一个基本的扫雷应用程序 用于快速练习 娱乐 我想让板的尺寸 10 个图块宽 适应任何 iOS 屏幕 为此 我通过获取tileContainer view frame width和 10来设置每个图块的大小 我的问题是 tileCo
  • CALayerframe.size不等于bounds.size

    我在CALayer上遇到了一些奇怪的事情 最后发现CALayer的frame size不等于它的bounds size 这是我无法理解的 我知道frame是在super的坐标系中 bounds是它自己的坐标 并且通常的情况是frame or
  • iOS中拖动时如何修改UIVisualEffectView的模糊度?

    目前 我正在使用 UIVisualEffectView 对图像应用模糊 我有一个 UIScrollView 当我在 scrollViewDidScroll 方法中向下拉滚动视图时 我正在更改 UIVisualEffectView 的 alp
  • 为什么这会破坏 UILabel adjustmentFontSizeToFitWidth?

    iOS 7 Xcode 5 使用 UILabel 此代码可以工作 自动调整文本大小以适应 self testLabel numberOfLines 0 self testLabel lineBreakMode NSLineBreakByWo
  • 使用 QuartzCore 为 UITextView 创建阴影 [重复]

    这个问题在这里已经有答案了 我使用创建了一个阴影QuartzCore for my UITextView使用以下代码 myTextView layer masksToBounds NO myTextView layer shadowColo
  • 在当前参数寄存器中找到的选择器名称:isEqual:

    我正在寻求一些帮助来消除 OSX 应用程序中的一个我无法解决的错误 我收到以下记录错误 Selector name found in current argument registers isEqual 但我一生都无法弄清楚它来自哪里 因为
  • 无法发出桥接标头的预编译标头

    我从 GitHub 下载了一个项目 然后 pod 了以下文件 其中一些文件是由 OBJ C 编写的 我使用了桥接头 pod SnapKit pod MJRefresh pod Alamofire pod Kingfisher pod MBP
  • 如何命名一段代码并在不同的方法中调用它?

    我使用 Grand Central Dispatch 方法在队列中执行我的应用程序 我在该队列的计算中决定按钮的框架 我希望我的应用程序重新绘制其屏幕并计算旋转后的新帧 这是我所做的一些伪代码解释 CGFloat a 123 b 24 di
  • 使用 Xcode 6 和(可能)cocoapods 生成错误

    在构建使用 cocoapods 和最新 Xcode 6 GM 版本的 iOS 项目时 我收到以下静态分析器错误 error error reading pic error no analyzer checkers are associate
  • PreferredInterfaceOrientationForPresentation 必须返回受支持的界面方向 (iOS 6)

    我的应用程序窗口的根视图控制器是 UINavigationController 的子类 我已将此代码添加到类中 BOOL shouldAutorotate return self topViewController shouldAutoro
  • 迁移大型 Core Data 数据库崩溃

    我有一个将产品存储在核心数据文件中的应用程序 这些产品包括作为 可转换 数据的图像 现在我尝试使用轻量级迁移添加一些属性 当我使用一个小型数据库对其进行测试时 它运行良好 但当我使用一个接近 500 MB 的大型数据库时 应用程序通常会因内
  • Swift 中的自定义输入视图

    我花了几个小时试图弄清楚如何创建 然后定制inputView上班 我有一个网格TextInputs 想想拼字板 按下时应该加载自定义inputView插入文本 我创建了一个 xib文件包含UI elements为定制inputView 我能
  • AVPlayerLooper 每次迭代后黑闪

    我正在使用 Apple 的示例代码在UICollectionViewCell背景 我在用着AVPlayerLooper 因为它是同一视频的迭代 我的问题是 当视频结束时 它会显示轻微的黑屏闪烁 也许它正在将视频搜索到0时间 我不确定 这是代
  • xCode 7.1 中警报的 UITesting

    我正在 xCode 7 1 中编写 UITests 并且在测试警报时遇到问题 在我的情况下允许通知 创建测试时 xCode 会写入以下代码 app alerts U201cAppName U201d Would Like to Send Y
  • 空 NSDatePicker

    你好 是否可以让 NSDatePicker 代表 nil 对象 类似 或任何其他方式 谢谢 拉杜 简短回答 否 NSDatePicker 只是忽略无效日期和 nil 例如 这不会更新 NSDatePicker 旧值仍然存在 datePick
  • 从 iOS 中的 App Delegate 调用当前视图控制器中的方法

    我有两个视图控制器 BuildingsViewController 和 RoomsViewController 它们都使用应用程序委托中名为上传的函数 上传函数基本上执行一个 HTTP 请求 如果成功或不成功 都会触发 uialertvie
  • 使用 twitterkit 将图像发布到 Twitter

    我正在尝试使用 Twitter 的新 TwitterKit 和自定义 UI 发布图像和推文 他们提供的唯一文档是如何用他们的观点来做这件事 所以我可以弄清楚如何在没有图像的情况下做到这一点 NSMutableDictionary messa
  • 如何区分iphone4和iphone 3

    我正在尝试使用 cocos2d 引擎为 iphone 构建游戏 我想知道如何区分用户使用的是 iphone 4 还是 iphone 3 因为我想为 iphone4 加载高分辨率图形 为 iphone 3 加载低分辨率图形 我知道我是否在以下
  • 如何获取 ios 日期数组中的所有星期日

    我只想要一个数组 它以 NSDate 的形式包含一年中的所有星期一 但速度很快 我在 Objective c 中使用以下代码 但不知道如何在 swift 中使用它 NSDate pickerDate NSDate date NSLog pi

随机推荐

  • 有哪些第三方选项可用于在 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