如何通過onTouch事件在CrossWalkView(WebView)中打開的HTML頁面中確定元素的XPATH?如何從html頁面獲取xPath(WebView)
0
A
回答
0
在您的webview組件上設置WebViewClient。
browser = (WebView) findViewById(R.id.browser);
browser.setWebViewClient(new InnerWebViewClient());
然後延伸WebViewClient類
private class InnerWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
}
}
在這裏,您將得到URL作爲字符串格式。 Webivew的onTouch事件將首先執行onPageStarted()方法。所以你會得到你的路徑網址。
0
問題通過使用JS解決。 JS的解決方案我來到這裏: I'm storing click coordinates in my db and then reloading them later and showing them on the site where the click happened, how do I make sure it loads in the same place?
InputStream is = getResources().openRawResource(R.raw.get_xpath);
Scanner s = new Scanner(is).useDelimiter("\\A");
String javascript = s.hasNext() ? s.next() : "";
myWebView.evaluateJavascript(javascript, null);
和here`s我的JS代碼:
document.onclick= function(event) {
if (event===undefined) event= window.event; // IE hack
var target= 'target' in event? event.target : event.srcElement; // another IE hack
var root= document.compatMode==='CSS1Compat'? document.documentElement : document.body;
var mxy= [event.clientX+root.scrollLeft, event.clientY+root.scrollTop];
var path= getPathTo(target);
var txy= getPageXY(target);
alert('Clicked element '+path+' offset '+(mxy[0]-txy[0])+', '+(mxy[1]-txy[1]));
}
function getPathTo(element) {
if (element.id!=='')
return 'id("'+element.id+'")';
if (element===document.body)
return element.tagName;
var ix= 0;
var siblings= element.parentNode.childNodes;
for (var i= 0; i<siblings.length; i++) {
var sibling= siblings[i];
if (sibling===element)
return getPathTo(element.parentNode)+'/'+element.tagName+'['+(ix+1)+']';
if (sibling.nodeType===1 && sibling.tagName===element.tagName)
ix++;
}
}
function getPageXY(element) {
var x= 0, y= 0;
while (element) {
x+= element.offsetLeft;
y+= element.offsetTop;
element= element.offsetParent;
}
return [x, y];
}
相關問題
- 1. 如何在android webview中獲取html頁面的結尾
- 2. 從WebView獲取當前頁面的URL
- 3. 使用XPath從html頁面獲取標題標記?
- 4. 我如何從WebView獲取頁面源代碼?
- 5. 如何從HTML頁面源獲取特定的html div標籤?
- 6. 如何獲取html頁面的標題
- 7. 如何在httpmodule中獲取頁面html?
- 8. 如何獲取當前頁面的html?
- 9. 如何從html頁面獲得pdf
- 10. 從html頁面獲取URL - objective
- 11. 從登錄後的頁面獲取HTML
- 12. Clojure從網站獲取html頁面
- 13. 從iframe中的頁面獲取HTML
- 14. 從html頁面獲取文本shell
- 15. 如何從html頁面提取文本?
- 16. 如何從HTML頁面提取鏈接?
- 17. PHP:使用xpath()獲取html頁面中的內容
- 18. 如何獲取無效html的xpath?
- 19. 如何獲取將在webview中加載的頁面的HTML代碼?
- 20. 如何發送值從android到webview中的一個html頁面
- 21. 如何從android webview傳遞對象到C#加載HTML頁面
- 22. 如何從網頁獲取html代碼?
- 23. 如何從Bada的網頁獲取HTML?
- 24. Android WebView:從網站獲取html div
- 25. 從webView獲取HTML源代碼
- 26. 如何使用jQuery或JavaScript從html頁面獲取SVG代碼?
- 27. 如何從頁面獲取HTML源代碼?
- 28. PHP:如何從HTML頁面獲取基本URL
- 29. 如何從HTML頁面獲取圖片Android studio
- 30. 如何從Servlet中獲取參數到Html頁面?