Я столкнулся с проблемой при создании автоматического теста для собственного приложения для Android (с использованием appium из webdriver.io + typescript).
В настоящее время я пытаюсь нажать кнопку по идентификатору для активности, которая имеет android:launchMode = "singleInstance" в манифесте Android.
Я столкнулся с проблемой, что appium не может найти ни одного элемента в этом действии. Журнал выглядит так:
[debug] [JSONWP Proxy] Proxying [POST /elements] to [POST http://localhost:8203/wd/hub/session/8938c098-48e6-4e7b-b9fd-4cf69034058c/elements] with body: {"strategy":"id","selector":"callStatus","context":"","multiple":true}
[debug] [JSONWP Proxy] Got response with status 200: {"sessionId":"8938c098-48e6-4e7b-b9fd-4cf69034058c","status":0,"value":[]}
[debug] [MJSONWP] Responding to client with driver.findElements() result: []
КСТАТИ. Я не могу проверить эту активность с помощью UIAutomatorView, похоже, проблема также связана с этим.
если убрать флаг android:launchMode = "singleInstance" - все будет нормально.
Как решить эту проблему?
Как найти элемент активности с флагом android:launchMode = "singleInstance"?
Если драйвер не может найти элемент, проверьте, с какой XML-структурой он сталкивается в данный момент: driver.source ()
Возможно, он вернет XML-представление другой активности / фрагмента. Вы также можете дважды проверить количество контекстов, которые у вас есть на данный момент: driver.contexts ();
Если существует более одного контекста NATIVE_APP, вам может потребоваться переключить другой.
К сожалению, есть только один контекст = (
А как насчет вывода driver.source ()? Вы элементы с текущего экрана или с предыдущего?
Собственно, причину сбоев Appium я нашел. Просто увеличено время ожидания waitForExist до 20 секунд (ранее было 10) из-за некоторого странного поведения. Отображается активность, но Appium не может найти ни одного элемента в течение 10 секунд.
tnx за советом. проверю