XCUITest - Как получить доступ к элементу пользовательского интерфейса на экране WebView из Google Mobile Ads SDK - PullRequest
1 голос
/ 18 июня 2020

Я использую XCUITest для автоматизации тестирования пользовательского интерфейса, большая часть приложения только нативная, и я могу получить доступ к элементам с помощью accessibilityIdentifiers или просто label. У меня возникла проблема при тестировании того, что объявление открывается, потому что я не могу получить доступ к кнопке закрытия на экране Ad WebView. Веб-представление поступает из Google Mobile Ads SDK для iOS.

Я пытался получить доступ к элементу с помощью app..buttons["Close Advertisement"].tap(), но это не сработало, он никогда не нажимал кнопку закрытия.

Когда Я пробую в отладчике po XCUIApplication().buttons["Close Advertisement"].tap() возвращает мне:

    t =    67.80s     Tap "Close Advertisement" Button
    t =    67.80s         Wait for ios.development to idle
    t =    67.82s         Find the "Close Advertisement" Button
    t =    67.86s         Check for interrupting elements affecting "Close Advertisement" Button
    t =    67.89s         Synthesize event
    t =    67.98s         Wait for ios.development to idle
0 elements

Это полная иерархия экрана, когда я выполняю po XCUIApplication().debugDescription

  Window (Main), 0x600003cd47e0, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630778878896.4>
    Other, 0x600003cd4700, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630742447520.6>
      Other, 0x600003cd4620, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630742449600.8>
    Other, 0x600003cd4540, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630742912976.229>
      Other, 0x600003cd4460, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630739951984.230>
        Button, 0x600003cd4380, {{0.0, 0.0}, {42.0, 42.0}}, label: 'Close Advertisement', Disabled <AX element pid: 67431, elementOrHash.elementID: 140630739216816.231>
        Other, 0x600003cd42a0, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630777385136.232>
          WebView, 0x600003cd40e0, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630769439744.233>
            WebView, 0x600003cd4000, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630768846336.236>
              WebView, 0x600003cd4e00, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630769495040.237>
                Other, 0x600003cd4ee0, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 5843420293174919168.9999>
                  Other, 0x600003cd4fc0, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67437, elementOrHash.elementID: 140233423230208.3>
                    Other, 0x600003cd50a0, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421369008.4>
                      Other, 0x600003cd5180, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421369040.5>
                        Other, 0x600003cd5260, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421402864.6>
                          Other, 0x600003cd5340, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421478464.7>
                            Other, 0x600003cd5420, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421481056.9>
                              Other, 0x600003cd5500, {{159.0, 303.0}, {57.0, 61.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421480800.10>
                              Other, 0x600003cd55e0, {{327.0, 0.0}, {48.0, 48.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421483680.11>
                                Other, 0x600003cd56c0, {{327.0, 0.0}, {48.0, 48.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421488304.19>
                                  Other, 0x600003cd57a0, {{339.0, 12.0}, {24.0, 24.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421489808.22>
                                  Other, 0x600003cd5880, {{339.0, 12.0}, {24.0, 24.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421486112.23>
                              Other, 0x600003cd5960, {{0.0, 0.0}, {375.0, 24.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421483712.12>
                              Other, 0x600003cd5a40, {{8.0, 635.0}, {24.0, 28.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421482512.13>
                              Other, 0x600003cd5b20, {{40.0, 627.0}, {8.0, 40.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421482544.14>
                                Other, 0x600003cd5c00, {{0.0, 0.0}, {0.0, 0.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421492128.20>
                              Other, 0x600003cd5ce0, {{34.0, 662.0}, {6.0, 5.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421482608.15>
                              Other, 0x600003cd5dc0, {{0.0, 662.0}, {48.0, 5.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421484160.16>
                              Other, 0x600003cd5ea0, {{253.0, 624.0}, {111.0, 31.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421484192.17>
                                Other, 0x600003cd5f80, {{253.0, 624.0}, {111.0, 31.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421496224.21>
                                  StaticText, 0x600003cd6060, {{277.0, 632.0}, {62.0, 15.0}}, label: 'Learn More' <AX element pid: 67437, elementOrHash.elementID: 140233421493056.24>
                              Other, 0x600003cd6140, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421484256.18>
                          Other, 0x600003cd6220, {{0.0, 0.0}, {25.0, 20.0}} <AX element pid: 67437, elementOrHash.elementID: 140233421478944.8>
              Other, 0x600003cc9180, {{342.0, 0.0}, {30.0, 667.0}}, label: 'Vertical scroll bar, 1 page', value: 0% <AX element pid: 67431, elementOrHash.elementID: 140630777539728.238>
              Other, 0x600003cc9260, {{0.0, 634.0}, {375.0, 30.0}}, label: 'Horizontal scroll bar, 1 page', value: 0% <AX element pid: 67431, elementOrHash.elementID: 140630777538944.239>
          Other, 0x600003ce32c0, {{0.0, 0.0}, {376.0, 668.0}} <AX element pid: 67431, elementOrHash.elementID: 140630826768976.234>
          StaticText, 0x600003ce31e0, {{160.0, 0.0}, {55.5, 22.0}}, label: 'Test Ad' <AX element pid: 67431, elementOrHash.elementID: 140630826625872.235>
  Window, 0x600003ce3100, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630783264592.5>
    Other, 0x600003cf4540, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630777978208.7>
      Other, 0x600003cd6300, {{0.0, 0.0}, {375.0, 667.0}} <AX element pid: 67431, elementOrHash.elementID: 140630742527888.9>```


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...