首页 > 解决方案 > iOS12的元素树中没有出现系统警报

问题描述

对于 iOS11,我使用以下内容在我的 UI 测试中访问 Face Not Recognized 系统警报:

XCUIApplication(bundleIdentifier: "com.apple.springboard").alerts.firstMatch

这在 iOS12 中对我不起作用。警报不再显示在元素树中。

有谁知道我现在如何在 iOS12 中访问它?

在此处输入图像描述

这是来自 iOS11 元素树: 在此处输入图像描述

这是 iOS12 的 po XCUIApplication(bundleIdentifier: "com.apple.springboard") 的结果:

    Attributes: Application, pid: 30484, label: ' '
Element subtree:
 →Application, 0x60000105c000, pid: 30484, label: ' '
    Window, 0x60000105c0d0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x60000105c1a0, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x60000105c270, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x60000105c340, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x60000105c410, {{0.0, 0.0}, {414.0, 896.0}}
    Window, 0x60000105c4e0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x60000105c5b0, {{0.0, 0.0}, {0.0, 0.0}}
        Icon, 0x60000105c680, {{-2.3, -2.0}, {70.0, 91.3}}
        Icon, 0x60000105c750, {{-2.0, -2.0}, {68.0, 91.3}}
        Icon, 0x60000105c820, {{-2.0, -2.0}, {68.0, 91.3}}
        Icon, 0x60000105c8f0, {{-2.0, -2.0}, {68.0, 91.3}}
        Icon, 0x60000105c9c0, {{-2.0, -2.0}, {68.0, 91.3}}
        Icon, 0x60000105ca90, {{-2.0, -2.0}, {68.0, 91.3}}
        Icon, 0x60000105cb60, {{-2.0, -2.0}, {68.0, 91.3}}
      Other, 0x60000105cc30, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x60000105cd00, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x60000105cdd0, {{0.0, 0.0}, {414.0, 100.0}}
          Other, 0x60000105cea0, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x60000105cf70, {{0.0, 0.0}, {414.0, 896.0}}
    Window, 0x60000105d040, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x60000105d110, {{0.0, 0.0}, {414.0, 896.0}}
    Window, 0x60000105d1e0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x60000105d2b0, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x60000105d380, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x60000105d450, {{0.0, 0.0}, {414.0, 896.0}}
            Other, 0x60000105d520, {{0.0, 0.0}, {414.0, 896.0}}
              Other, 0x60000105d5f0, {{0.0, 0.0}, {414.0, 896.0}}
                Other, 0x60000105d6c0, {{0.0, 0.0}, {414.0, 896.0}}
                  Other, 0x60000105d790, {{0.0, 0.0}, {414.0, 896.0}}
                    Other, 0x60000105d860, {{0.0, 0.0}, {414.0, 896.0}}
                      Other, 0x60000105d930, {{0.0, 0.0}, {414.0, 896.0}}
                        Other, 0x60000105da00, {{0.0, 0.0}, {414.0, 896.0}}
                        Other, 0x60000105dad0, {{0.0, 0.0}, {414.0, 896.0}}
                          Other, 0x60000105dba0, {{0.0, 0.0}, {414.0, 896.0}}
                            Other, 0x60000105dc70, {{0.0, 0.0}, {414.0, 896.0}}
                            Other, 0x60000105dd40, {{0.0, 0.0}, {414.0, 896.0}}
                            Other, 0x60000105de10, {{0.0, 0.0}, {414.0, 896.0}}
                        Other, 0x60000105dee0, {{0.0, 0.0}, {414.0, 896.0}}
                          Other, 0x60000105dfb0, {{0.0, 0.0}, {414.0, 896.0}}
                            Other, 0x60000105e080, {{0.0, 0.0}, {414.0, 896.0}}
    Other, 0x60000105e150, {{0.0, 0.0}, {1242.0, 2688.0}}
      Other, 0x60000105e220, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105e2f0, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105e3c0, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105e490, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105e560, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105e630, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105e700, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105e7d0, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105e8a0, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105e970, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105ea40, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105eb10, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105ebe0, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105ecb0, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105ed80, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105ee50, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105ef20, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105eff0, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105f0c0, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105f190, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105f260, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105f330, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105f400, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105f4d0, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105f5a0, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105f670, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105f740, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105f810, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105f8e0, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105f9b0, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105fa80, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105fb50, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105fc20, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x60000105fcf0, {{0.0, 0.0}, {1242.0, 2688.0}}
        Other, 0x60000105fdc0, {{0.0, 0.0}, {1242.0, 2688.0}}
          Other, 0x60000105fe90, {{0.0, 0.0}, {1242.0, 2688.0}}
            Other, 0x600001063190, {{0.0, 0.0}, {1242.0, 2688.0}}
      Other, 0x600001062d80, {{0.0, 0.0}, {1242.0, 2688.0}}
    Window, 0x600001063260, {{0.0, 0.0}, {414.0, 896.0}}, identifier: 'SBSwitcherWindow'
      Other, 0x600001062f20, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x600001062ff0, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x600001062e50, {{0.0, 0.0}, {414.0, 896.0}}
            Other, 0x600001063dc0, {{0.0, 0.0}, {414.0, 896.0}}
              ScrollView, 0x600001063e90, {{0.0, 0.0}, {414.0, 896.0}}
              Other, 0x600001062cb0, {{0.0, 0.0}, {414.0, 896.0}}, identifier: 'AppSwitcherContentView'
                Other, 0x600001063330, {{0.0, 0.0}, {414.0, 896.0}}, label: 'App', value: Active
                  ScrollView, 0x600001063c20, {{0.0, -448.0}, {414.0, 1344.0}}
                    Other, 0x600001062150, {{0.0, 0.0}, {414.0, 996.0}}
                      Other, 0x600001062560, {{0.0, 0.0}, {414.0, 896.0}}
                      Other, 0x600001061ba0, {{0.0, 0.0}, {414.0, 896.0}}
                        Other, 0x600001061c70, {{0.0, 0.0}, {414.0, 896.0}}
                          Other, 0x600001062220, {{0.0, 0.0}, {414.0, 896.0}}
                            Other, 0x600001062630, {{0.0, 0.0}, {414.0, 896.0}}
                              Other, 0x600001061fb0, {{0.0, 0.0}, {414.0, 896.0}}
                                Other, 0x600001061e10, {{0.0, 0.0}, {414.0, 896.0}}
                      Other, 0x600001062be0, {{0.0, 0.0}, {414.0, 896.0}}
    Window (Main), 0x600001061ee0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x600001063670, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x600001063740, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x600001062700, {{0.0, 0.0}, {414.0, 896.0}}
            Other, 0x600001062490, {{0.0, 0.0}, {414.0, 896.0}}
              Other, 0x600001061040, {{0.0, 0.0}, {414.0, 896.0}}
                Other, 0x600001062080, {{0.0, 0.0}, {414.0, 896.0}}
                  Other, 0x6000010639b0, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x6000010628a0, {{0.0, 0.0}, {414.0, 896.0}}, identifier: 'Home Grabber'
            Other, 0x600001063a80, {{133.0, 883.0}, {148.0, 5.0}}
    Window, 0x6000010638e0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x600001061d40, {{0.0, 0.0}, {414.0, 896.0}}
        Other, 0x6000010627d0, {{0.0, 896.0}, {414.0, 243.0}}
        Other, 0x600001063400, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x6000010635a0, {{0.0, 0.0}, {414.0, 896.0}}
    Window, 0x600001063b50, {{-0.0, -0.0}, {414.0, 896.0}}
      Other, 0x600001063cf0, {{-0.0, -0.0}, {414.0, 896.0}}
        Other, 0x600001063810, {{0.0, 0.0}, {414.0, 896.0}}
          Other, 0x6000010634d0, {{-0.0, -0.0}, {414.0, 896.0}}
    Window, 0x600001062b10, {{0.0, 0.0}, {414.0, 896.0}}
    Window, 0x6000010630c0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x600001062970, {{0.0, 0.0}, {414.0, 896.0}}
    Window, 0x6000010622f0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x6000010623c0, {{0.0, 0.0}, {414.0, 896.0}}
      Other, 0x600001062a40, {{0.0, 0.0}, {0.0, 0.0}}
Path to element:
 →Application, pid: 30484, label: ' '
Query chain:
 →Find: Application 'com.apple.springboard'
  Output: {
    Application, pid: 30484, label: ' '
  }

标签: iosxcodeios12xcuitestxcode10.1

解决方案


可能是时间问题,可以通过以下方式解决:

let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard")


let firstButton  = springboard.buttons.firstMatch
//let secondButton = springboard.buttons.element(boundBy: 1)   // index: 0, 1, …
//let namedButton  = springboard.alerts.buttons["Some String"] // another example

if firstButton.waitForExistence(timeout: 6) {
    firstButton.tap() // do something after button exists
}

推荐阅读