在Android的单元测试中,使用java脚本从WebView中获取内容
Getting content out of WebView In a unit test Android, using java script
我已经能够使用javascript和loadUrl()方法从注入WebView的javascript字符串调用的接口获得内容。问题是,这只适用于我当loadUrl()方法存在于onPageFinished()方法在WebView客户端。我想做的是我想从WebView中获取内容(内容已经加载)。WebView是在一个活动仪表测试用例,我可以使用findAll()方法,这工作得很好。出于某种原因,我不能使用loadUrl()并获得所需的行为(这是注入javascript并在接口的帮助下从WebView中获取内容)。
请帮助。
感谢帕编辑:只是添加代码来显示我正在做的事情:
是的,我理解,但我的问题是,我试图这样做,在一个测试用例:
public void testWebView() throws Exception {
solo.sleep(3000); // wait for views to load on the screen
WebView a=null;
ArrayList<View> views = solo.getCurrentViews(); // I am using solo object to get views for the screen currently loaded
for(View s:views)
{
if (s instanceof WebView)
{
a = (WebView)s; // this is where I get my WebView
}
}
Instrumentation inst = getInstrumentation();
inst.runOnMainSync(new Runnable()
{
public void run()
{
int d =a.findAll("something"); // this method runs fine on the object and i get the desired result
WebSettings settings = a.getSettings();
settings.setJavaScriptEnabled(true);
a.loadUrl("javascript:document.location = document.getElementById('google').getAttribute('href')"); // this javascript is never executed and that is my problem
}
});
}
你可以在加载的页面中注入javascript,就像在桌面浏览器中一样——通过在导航栏中输入内联javascript。
-
绑定一些Java对象,以便可以通过WebView从Javascript调用它:
addJavascriptInterface(javaObjectExposed, "JSname")
-
在现有页面中强制执行javascript
WebView.loadUrl("javascript:window.JSname.passData("some data from page");");
相关文章:
- 安卓webview活动,如何获取js返回值
- 单击链接时,从Android WebView中的锚标记获取href值
- 如何从android webview获取Javascript消息
- 离子应用程序 - 无法获取要在 WebView 中打开的链接
- 无法在Android中使用Javascript webview获取GPS坐标
- 从post请求中获取数据后,使用LoadData在WebView中运行JavaScript
- 在Xamarin窗体中从WebView获取数据
- 从Android WebView获取iframe数据
- 如何从JavaScript获取Android WebView的屏幕大小
- 如何获取当前页面'使用JavaScript的Android WebView中的URL
- Android和JavaScript,JS如何获取webview JS返回数据
- WebView正在获取表单数据
- 使用Javascript从Qt WebView获取文本
- 在Android的单元测试中,使用java脚本从WebView中获取内容
- JavaFX webview,获取文档高度
- JavaScript使用Android webview获取所有类名文本
- 从Android Webview获取HTML不工作
- 当我使用 webview.loadUrl() 时,我可以在 html 中获取 url 参数吗?
- 从webview获取javascript var到android var
- 在webview中获取日期时间