2016-09-08 8 views
1

Я использую Selenium с Appium, и мои тесты выполняются на Android и iOS реальном устройстве. Набор тестов выполняется на Android, а iOS - на холостом ходу. Затем тестовый переключатель в iOS. Оба устройства одновременно подключены.Как обращаться с уведомлением об обновлении iOS с помощью Appium

Ниже последовательность свит я бегу с помощью TestNG:

<suite-file path="android_Suite1.xml" /> 
<suite-file path="ios_Suite1.xml" /> 
<suite-file path="android_Suite2.xml" /> 
<suite-file path="ios_Suite2.xml" /> 
<suite-file path="android_Suite3.xml" /> 
<suite-file path="ios_Suite3.xml" /> 

Проблема здесь IOS устройство показывает Os установки обновления всплывающие, когда тестовый переключатель для андроида. Я хочу отключить всплывающее окно перед тем, как тестовый коммутатор вернется в iOS. Я могу удалить обновление из настроек> storage. Но тесты выполняются в одночасье, и есть возможность обновления, загружаемого снова. Поскольку это системное предупреждение, тест не запускается, потому что сеанс не создается, поскольку appium не находит рабочий стол. Таким образом, возможности также не будут работать. Нужна помощь для обработки этого конкретного всплывающего окна.

+0

pop-up имеет элементы, вы можете нажать кнопку «ok»/«cancel». В чем проблема? –

+0

Да, но всплывающее окно обновления программного обеспечения не имеет одобрения/Отмена. он имеет Install/Later /. Также не может получить доступ к этому всплывающему окну, если не создан iOSdriver. – Viplav

ответ

0

Не уверен, что я могу дать вам точное решение, но вы можете создать двухпоточную систему, одну для Android и одну для iOS. Затем просто выведите каждую нить, пока другая тестирует. Для этого вам нужно запустить два экземпляра Appium (разные порты).

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

1) Тогда также есть драйвер для каждого запуска. В этот момент вы можете просто ввести логику на стороне iOS, чтобы всегда упускать/принимать предупреждения.

2) У вас может быть нить из потока iOS, которая проверяет всплывающее окно программного обеспечения каждые «x» секунд, а затем, если его отклонить.

У меня была аналогичная проблема с асинхронными всплывающими окнами на android, которые я использовал для опции (2). Ваша проблема кажется немного более проблематичной, чем то, с чем мне пришлось иметь дело. Надеюсь, это поможет вам начать с хорошего решения! Извините за неоднозначный ответ.

+0

Спасибо @JaysonP. Я попробую этот подход и обновить в комментариях :) – Viplav

0

Сначала вам нужно удалить загруженное обновление, если оно уже загружено, тогда вы должны отключить автообновление, как показано ниже.

Автоматические обновления включены по умолчанию, поэтому вам необходимо отключить их. Это не поможет в текущем обновлении, но это не остановит вас от получения этих сообщений в будущем. Поэтому первое, что вам нужно сделать, - это погрузиться в настройки и отключить автоматическое обновление:

  1. Нажмите Настройки.
  2. Tap iTunes & App Store.
  3. Установите обновления в разделе «Автоматические загрузки» на «Выкл.».

Это предотвратит загрузку обновлений iOS в будущем, хотя вам все равно придется иметь дело с загруженным вами обновлением.