#ios #appium #webdriver-io #appium-ios #xcuitest
Вопрос:
Я уже пару дней бьюсь головой об стену и мог бы воспользоваться некоторой помощью, чтобы выяснить, есть ли ошибка в Appium 1.20.2 для устройств iOS на 14.4 (Xcode 12.4) или я пропустил какую-то важную конфигурацию при выполнении тестов на реальных устройствах.
Я пытаюсь запустить некоторые XCUITest через Appium (в комплекте с Webdriver.io) в моем гибридном приложении. Кажется, я не вижу своего WKWebView, когда я запускаю на физическом устройстве.
Мой код довольно шаблонен, насколько это касается WDIO:
let contexts = driver.getContexts()
var foundContext = null
for (var context of contexts) {
if (context.indexOf("WEBVIEW") > -1) foundContext = context
}
Код возвращает экземпляр веб — представления на устройстве-симуляторе под управлением iOS 14.4 (iPhone XR), что заставляет меня думать, что это либо конфигурация моего устройства, либо приложение.
Другая интересная вещь заключается в том, что веб-представление даже не отображается в прокси-сервере ios-web-драйвера, если я запускаю его отдельно и пытаюсь получить доступ к веб-представлению в тесте или за его пределами.
Вещи, которые я пробовал:
- Сброс журналов Safari/web во время тестовых запусков; журналы ничего не сообщают для моего устройства
- Сброс журналов Xcode через Appium/WDIO показывает только собственные клики, которые я выполняю
- Включение ios-веб-драйвера-прокси вручную также не привело к каким — либо попыткам доступа
- Запуск Safari на моем устройстве с помощью IWDP и даже удаленного отладчика Safari без IDWP приводит к тому, что я могу видеть, что там происходит
- Я также изменил тайм-ауты в Jasmine и моем webviewConnectTimeout примерно на две минуты (120000 мс), и ни одно из них не привело к каким-либо изменениям
Единственная разница, о которой я могу думать, заключается в том, что мой симулятор запускает версию приложения .app, предназначенную для Sim-карты, в то время как мое реальное устройство использует .ipa, который я извлекаю отдельно. Тем не менее, я бы счел странным запретить доступ к веб-представлению.
Комментарии:
1. UIWebView устарел, переключитесь на WKWebView.
2. @w0mbat я оговорился выше. Это WKWebView. Я обновил свой пост, чтобы отразить это. Все еще не привык к новому виду после того, как так долго использовал материал с префиксом UI.
3. Спасибо за поправку.