Я являюсь SDET на моей текущей должности, и меня попросили выяснить, возможно ли использовать Xcode и XCUITest для автоматизации тестирования пользовательского интерфейса гибридного приложения. У нас есть один, который мы создаем внутри, который имеет встроенную оболочку для других приложений, которые извлекаются как кокопод. Одно из этих приложений основано на веб-просмотре, и оно вызывает у меня проблемы.
Мне удобно использовать Xcode и Swift для написания автоматизации пользовательского интерфейса в целом, и мне удобно использовать отладчик для анализа элементов приложения иерархия. Однако для этого приложения, в частности, я не могу видеть элементы, которые являются потомками веб-представления.
Все, что я получаю, когда я выполняю команду po в отладчике, это блок, который выглядит следующим образом :
WebView, 0x600002d6c000, {{0.0, 82.0}, {1024.0, 1284.0}}
WebView, 0x600002d6c0e0, {{0.0, 82.0}, {1024.0, 1284.0}}
WebView, 0x600002d6c1c0, {{0.0, 82.0}, {1024.0, 1284.0}}
Other, 0x600002d6c2a0, {{991.0, 87.5}, {30.0, 1267.5}}, label: 'Vertical scroll bar, 2 pages', value: 0%
Other, 0x600002d6c380, {{11.0, 1333.0}, {1002.0, 30.0}}, label: 'Horizontal scroll bar, 1 page', value: 0%
И это полезно только до того момента, когда я могу проверить, загружено ли веб-представление. Это не позволяет мне проверять что-либо на самом деле в нем.
Теперь я также знаю, по поиску в Google, что на данный момент, если я запускаю свое приложение в симуляторе, я могу go открыть Safari и посмотреть исходный код веб-просмотра. Я могу подтвердить, что это работает для меня. Однако на самом деле это не говорит мне, могу ли я получить доступ к элементам веб-просмотра из автоматизации XCUITest, и если да, то как мне к ним обращаться. Поскольку я не вижу их в моем отладчике, мне очень сложно их найти. Попытка выполнить сеанс UI Recorder не работает, так как UI Recorder также не может распознать наличие элементов.
Последнее, что я также знаю по поиску в Google, - это то, что подавляющее большинство страниц, которые я Мы нашли, в том числе и здесь, на Stack Overflow, разговор о выполнении автоматизации на основе веб-просмотра в Appium. Однако меня специально попросили посмотреть, возможно ли это, в частности, в XCUITest.
Итак, мой общий вопрос: возможно ли ? Есть ли что-то, чего мне здесь не хватает в плане того, как добраться до потомков веб-представления?
Я видел обсуждение того, что Appium нужно переключать «контексты» с нативного на контекст веб-просмотра, но я не поиск любых ссылок на эквивалентную концепцию в сфере XCUITest. И я подхожу полностью dry в любых других полезных данных.
Редактирование, чтобы добавить быстрое замечание:
Я только что выполнил поиск на форумах разработчиков Apple, и я вижу комментарий от кого-то, кто на самом деле может быть root моей проблемы. Они говорят:
Та же проблема здесь, похоже на ios: 13.3 Элемент Webview пуст: / в то время как на iOS 13.1 и 13.2 Webview поставляется со всеми элементами внутри Wbview, любая помощь?
Ссылка на источник для этого комментария для тех из вас, кто участвует в программе Apple для разработчиков.
Так что с этим дополнением кто-нибудь может подтвердить, могу ли я Вы действительно столкнулись с изменением или ошибкой функции XCode?
Еще одно редактирование, чтобы добавить подробности о моей среде разработки, так как они имеют отношение к вопросу:
- Ма c работает под управлением последней версии Catalina, 10.15.2
- Мой Xcode - 11.3.1
- Я тестирую на симуляторах, а также на физическом устройстве под управлением iPadOS 13.3, хотя Я также собираюсь выяснить, не повторяется ли проблема с 13,2
Заранее благодарен за любую помощь!