Java 如何从html页面(WebView)获取xPath

Java 如何从html页面(WebView)获取xPath,java,android,xpath,Java,Android,Xpath,如何确定由onTouch事件在CrossWalkView(WebView)中打开的html页面中的元素的XPATH?问题通过使用JS解决。 我在这里得到的JS解决方案: 这是我的JS代码: document.onclick= function(event) { if (event===undefined) event= window.event; // IE hack var target= 'target' in event? even

如何确定由onTouch事件在CrossWalkView(WebView)中打开的html页面中的元素的XPATH?

问题通过使用JS解决。 我在这里得到的JS解决方案:

这是我的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];
}
document.onclick=函数(事件){
如果(event==未定义)event=window.event;//IE hack
var target='target'在event?event.target:event.srcmelement;//另一个IE黑客
var root=document.compatMode=='CSS1Compat'?document.documentElement:document.body;
var mxy=[event.clientX+root.scrollLeft,event.clientY+root.scrollTop];
var path=getPathTo(目标);
var txy=getPageXY(目标);
警报('Clicked element'+path+'offset'+(mxy[0]-txy[0])+','+(mxy[1]-txy[1]);
}
函数getPathTo(元素){
if(element.id!='')
返回'id('+element.id+');
if(元素===document.body)
返回元素.tagName;
var ix=0;
var sides=element.parentNode.childNodes;
对于(var i=0;i
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];
}