Я пишу тестовый скрипт пользовательского интерфейса на Python, после выполнения щелчка может появиться всплывающее окно с предупреждением. Если это так, мне нужно нажать кнопку в этом окне. Интересно, есть ли способ обнаружить диалоговые окна предупреждений в Appium API? Спасибо.
Диалоговое окно оповещения об обнаружении Appium
- пожалуйста, поделитесь этим диалоговым окном с локаторами для этой страницы. Только тогда я могу что-то сказать 18.09.2015
- @Gaurav Я только что добавил снимок экрана. Дайте мне знать, если это тот, который вы хотите. Большое спасибо. 18.09.2015
- Похоже, что для кнопки «Да» и «Нет» нет локатора. Можете ли вы попытаться использовать UIAutomator, чтобы найти локаторы для этого диалогового окна? 21.09.2015
- @Gaurav Да, я могу их найти. Я просто не показал их на картинке. 22.09.2015
- большой!! теперь вы можете выполнять любые действия, используя эти локаторы. 22.09.2015
Ответы:
простой и лучший способ сделать через возможности
capabilities.setCapability("autoAcceptAlerts",true);
Это будет принимать только оповещения из вашего приложения, а не системные оповещения.
Поместите указатель на кнопку Да, Нет, вы получите идентификаторы тех, у кого есть отдельные идентификаторы. Затем используйте
self.driver.find_element_by_id('id of the button').click()
Если у них нет идентификатора, используйте
self.driver.find_element_by_name('OK').click()
Я думаю, что это немного не связано с вопросом, но я надеюсь, что это даст вам ключ.
Вы можете использовать XPATH, чтобы найти элемент. ну, этот подход действительно не рекомендуется. Но это может быть полезно, если у элемента нет идентификатора, имени доступности, имени или метки. где информация только класса и стоимости.
например, вы можете сделать что-то вроде этого: //android.widget.Button[contains(@text,'OK')]
Я не уверен в имени класса для диалога предупреждений на Android. Но это мой подход, когда я сталкиваюсь с какой-либо проблемой автоматизации iOS, например, в моем приложении есть настраиваемое оповещение с 3 кнопками (все они настроены), кнопкой «Открыть», «Закрыть» и «Отчет»:
//UIAAlert[*]//UIAButton[@name='Report']
Вы можете использовать тот же подход, чтобы найти любой элемент, который не может быть найден при обычном подходе.