Может ли АБР увидеть, полностью ли загружен браузер? - PullRequest
2 голосов
/ 17 ноября 2011

Я создал приложение, которое взаимодействует с эмулятором Android через ADB, чтобы отправить браузер по определенному URL-адресу, а затем сделать снимок экрана с окном браузера. Затем я беру изображение и преобразовываю его на стороне сервера в JPG.

Все отлично работает, однако сейчас я просто выполняю thread.sleep () в течение 15 секунд, чтобы убедиться, что браузер завершил загрузку URL, который я передаю. По большей части это работает нормально, но некоторые сайты загрузка завершена за 15 секунд, в то время как другим все еще нужно несколько секунд.

Мне было интересно, есть ли способ через ADB, чтобы я мог проверить, закончилась ли загрузка браузера вместо установки статического времени ожидания?

1 Ответ

1 голос
/ 17 ноября 2011

Есть способ: сразу после открытия браузера загрузить URL-адрес JavaScript, который будет выводиться на консоль после загрузки страницы.Затем найдите вывод в logcat.В Android все console.log() вызовы javascript перенаправляются в logcat.(имя тега зависит от версии ОС, ищите консоль, браузер или WebCore)

Пример:

adb shell am start -a android.intent.action.VIEW -d http://www.stackoverflow.com ; sleep 1 ; adb shell am start -a android.intent.action.VIEW -d "javascript:window.onload=function(){console.log('stackoverflow rocks hard.')}" -n com.android.browser/com.android.browser.BrowserActivity

Вы можете увидеть следующую строку в logcat, когда сайт будет полностью загружен:

11-16 23:03:53.887: D/WebCore(1672): Console: stackoverflow%20rocks%20hard. line: 1 source: 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...