Как найти приложение для обмена в iOS13 листе обмена с помощью теста пользовательского интерфейса? - PullRequest
2 голосов
/ 07 января 2020

Я использую тест пользовательского интерфейса, чтобы проверить совместное использование файла с целевым приложением. Для этого я использую тестирование пользовательского интерфейса для нескольких приложений следующим образом:

  • целевое приложение должно стать активным при предоставлении ему определенного файла
  • помощник app UITestsHelper - это простой шаблон приложения на основе документов, который устанавливает файл в своем контейнере, переходит к нему и делится файлом с целевым приложением

Проблема заключается в том, что когда открыт, нет никакого значимого текста, который я мог бы использовать, чтобы найти ячейку, чтобы поделиться файлом с целевым приложением, в этом случае показано как «MyApp».

enter image description here

При проверке иерархии пользовательского интерфейса в журналах это соответствующий раздел:

ScrollView, {{0.0, 617.0}, {414.0, 132.0}}
  Cell, {{13.0, 617.0}, {78.0, 118.5}}, label: 'AirDrop'
  Cell, {{106.5, 617.0}, {78.0, 118.5}}, label: 'Nachrichten'
  Cell, {{200.0, 617.0}, {78.0, 118.5}}, label: 'Mail'
  Cell, {{293.5, 617.0}, {78.0, 131.5}}, label: 'Aktivität'
  Cell, {{387.0, 617.0}, {78.0, 131.5}}, label: 'Aktivität'

Как видите, системные приложения и службы, такие как AirDrop, Messages и Mail, имеют значимую метку ( здесь на немецком языке, потому что это системный язык). Сторонние приложения просто отображаются с ярлыком «Активность» (Aktivität на немецком языке).

Я прямо сейчас слепо нажимаю на четвертую ячейку, чтобы выбрать первое несистемное приложение, но я нахожу это чрезвычайно fr agile.

Есть ли более надежный способ поделиться файлом с целевым приложением?

1 Ответ

0 голосов
/ 23 января 2020

Я также нашел эту ошибку. Я обхожу это следующим образом - я нахожу все эти ячейки «Активность» (app.cells.matching(identifier: "Activity").allElementsBoundByIndex) и нажимаю их одну за другой, пока не будет найдено необходимое (проверяю это, глядя на целевое приложение .state)

...