我创建了一个应用程序,它通过 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/