Re: [问题]用 javascript 点击 webview element

楼主: purin88 (原来我是愤怒的乡民)   2015-05-12 21:55:16
※ 引述《snoopy1530 (玲玲)》之铭言:
: 大家好
: 我现在用Robotium 这个 android test Framework 来测试 APK (没有 source code)
: 在要模拟点击 Web element 遇到一个麻烦,我想要使用 javascipt 来点击web element
: 但不管怎样试都无法work,程式码如下
: List<WebElement> webelement = solo.getCurrentWebElements();
: for(WebElement we : webelement){
: webview.loadUrl("javascript:
: var ev=document.getElementById(we.getId());
: ev.initEvent('click',true,false);
: document.dispatchEvent(ev);");
: }
: 也试过
: webview.loadUrl("javascript:getElementById(we.getId()).click()")
: 我再想是不是 getElementById() 只能接受 固定值?
: 也试过用参数代入,也是无法work
: final web_id = we.getId()
: webview.loadUrl("javascript:getElementById(web_id).click()")
: 会想要用javascript去点击web
: 是因为用过了Robotium 本身提供的 solo.clickOnWebElement
: 也是无法work
: 因为本身对于web 跟javascript不太熟
: 不知道有没有人可指点一下
: 谢谢
1、
wb.loadUrl("javascript:<script> </script>");
use,
wb.loadDataWithBaseURL(null,"<script>
</script>","text/html","utf-8",null);
2、
contentWebView.setWebViewClient(new MyWebViewClient());
private void loadJs(){
contentWebView.loadUrl("javascript:(function(){" +
"var objs = document.getElementsByTagName(\"img\"); " +
"for(var i=0;i<objs.length;i++) " +
"{"
+ " objs[i].onclick=function() " +
" { "
+ " window.imagelistner.openImage(this.src); " +
" } " +
"}" +
"})()");
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
view.getSettings().setJavaScriptEnabled(true);
super.onPageFinished(view, url);
loadJs();
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.getSettings().setJavaScriptEnabled(true);
super.onPageStarted(view, url, favicon);
}
@Override
public void onReceivedError(WebView view, int errorCode, String
description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
}
3、
String js = "javascript:(function () {
// Do some JS in here
})()";
// NOTE: webView is just a reference to a some global variable in your
Activity
webView.loadUrl(js);

Links booklink

Contact Us: admin [ a t ] ucptt.com