亚行可以查看浏览器是否已满载?

时间:2011-11-16 20:40:54

标签: android android-emulator adb

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

一切都很好,但是现在我只是做了一个thread.sleep()15秒,以确保浏览器已经完成加载我传入的URL。嗯,这大部分工作正常,但有些网站在15秒之前完成加载,而其他人仍然需要几秒钟。

我想知道ADB是否有办法检查浏览器是否已完成加载而不是设置静态等待时间?

1 个答案:

答案 0 :(得分:1)

有一种方法:在打开浏览器之后,加载一个javascript 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: