android - adb可以查看浏览器是否满载吗?

标签 android android-emulator adb

我创建了一个应用程序,它通过 ADB 与 Android Emulator 交互,将浏览器发送到特定的 URL,然后截取浏览器窗口。然后我抓取图像并将其在服务器端转换为 JPG。

一切都很好,但是现在我只是在执行 thread.sleep() 15 秒,以确保浏览器完成加载我传入的 URL。好吧,这在大多数情况下工作正常,但有些网站在 15 秒之前完成加载方式,而其他人仍然需要几秒钟。

我想知道是否有一种方法可以通过 ADB 检查浏览器是否完成加载而不是设置静态等待时间?

最佳答案

有一种方法:打开浏览器后,加载一个 javascript url,该 url 将在页面加载后输出到控制台。然后在 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: 

关于android - adb可以查看浏览器是否满载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8158366/

相关文章:

Android Studio 模拟器 "/dev/kvm is not found"

Android Studio 模拟器符号未找到 : _pwritev

android - 如何在亚行上传递新行

android - 单击推送通知时对特定 Activity 的 Intent 。

java - junit assume command - 我可以将它放在设置方法中以忽略所有测试吗

android - 更新数据库android时的AlertDialog或Toast

android - LG Revolution 和 Android 开发

android - Android 中的 Activity 和 list

Android Studio : The Mesa software renderer is deprecated. 使用Swiftshader进行软件渲染

android - 从 android Activity 向 adb 发送命令