Ошибка UiAutomator при проверке элементов WebView

Недавно я начал автоматическое тестирование в Android и использовал инструмент UiAutomator для проверки элементов пользовательского интерфейса. Удивительно, но я столкнулся с двумя разными ответами на элементы Webview для одного и того же экрана и одного и того же устройства [Genymotion MotoX 4.4.4]. Прикреплены скриншоты для того же. Мы все знаем, что у appium есть проблема с проверкой элементов веб-просмотра, которые не содержат «setWebContentsDebuggingEnabled» в true. Это ошибка в UiAutomator? Экран, отображающий дочерние элементы веб-просмотра

Экран без дочерних элементов WebView


person Rashmi.B    schedule 17.05.2016    source источник


Ответы (1)


Мы все знаем, что у appium есть проблема с проверкой элементов веб-просмотра, которые не содержат setWebContentsDebuggingEnabled в true. Это ошибка в UiAutomator?

НЕТ, это не ошибка. Это РЕАЛИЗАЦИЯ как есть. Если для setWebContentsDebuggingEnabled не установлено значение true, вы не можете отлаживать или получать доступ к каким-либо элементам внутри веб-представления.

Чтобы процитировать developers.android.com

void setWebContentsDebuggingEnabled (логическое значение включено)

Включает отладку веб-контента (HTML/CSS/JavaScript), загруженного в любые WebView этого приложения. Этот флаг можно включить, чтобы облегчить отладку веб-макетов и кода JavaScript, работающего внутри WebViews. Пожалуйста, обратитесь к документации WebView за руководством по отладке. Значение по умолчанию — false.

Возможно, вас заинтересуют и эти:

Миграция на WebView в Android 4.4

person Naman    schedule 17.05.2016
comment
Ценю ваш ответ @Nullpointer, но меня беспокоит то, что у меня нет доступа к исходному коду приложения. Во-первых, мы тестируем только APK. Поэтому мы не можем установить какой-либо флаг на данный момент. Во-вторых, разнообразные элементы, которые мы получаем через UiAutomator. И когда я говорю БАГ, я скорее имел в виду UiAutomator, а не appium :) - person Rashmi.B; 17.05.2016
comment
@ Rashmi.B: почему вы считаете это ошибкой? и если это вопрос, он должен быть размещен в каком-то сообществе, а не в SO. - person Naman; 17.05.2016
comment
Причина, по которой я написал здесь, заключалась в том, что у него более широкая техническая аудитория из разных потоков. На форумах обсуждения резко прекращаются, и мне очень нужна помощь в разборе веб-элементов. - person Rashmi.B; 17.05.2016
comment
@ Rashmi.B: ну, я не считаю это ошибкой, поэтому, если вы это сделаете, вы должны доказать некоторые моменты в коде. Для чего было бы здорово увидеть некоторые исследования реализации UIAutomator в обновленном вопросе от вас. - person Naman; 17.05.2016
comment
Причина, по которой @Rashmi.B по понятным причинам думает, что это ошибка, заключается в том, что одно и то же приложение, на том же устройстве, на одном и том же экране иногда показывает представления, а иногда нет. Я тоже думаю, что это баг. - person Diego Torres Milano; 19.05.2016
comment
@DiegoTorresMilano: возможно, насколько я понимаю, то, что вы говорите, отличается от вопроса ОП. - person Naman; 19.05.2016
comment
@DiegoTorresMilano меня правильно понял. Это именно то, с чем я сталкиваюсь. То же устройство, то же приложение, тот же экран и разные результаты от uiAutomator - person Rashmi.B; 19.05.2016
comment
@ Rashmi.B: если это то, что вы имеете в виду, && также под «одним и тем же приложением» вы подразумеваете приложение с setWebContentsDebuggingEnabled=true в обоих случаях. тогда, конечно, это может быть ошибка. [при условии, что устройство такое же] - person Naman; 19.05.2016
comment
@nullpointer нет в обоих случаях... потому что есть только один случай. - person Diego Torres Milano; 19.05.2016
comment
@nullpointer вот в чем загвоздка. Я автоматизирую уже существующее приложение, в котором разработчик не установил setWebContentsDebuggingEnabled=true, поэтому я не могу проверять элементы в веб-просмотре. Но с этой проблемой в UiAutomator он отображает дочерние элементы один раз, а другой экземпляр - нет. - person Rashmi.B; 20.05.2016
comment
Хотя ответ интересен, он не затрагивает суть проблемы. Скриншоты ясно показывают ошибку UI Automater. Я попал сюда из-за именно этого поведения и буду тестировать genymotion. - person JoshuaTree; 22.11.2017