Android WebView GetHitTestResult()在模拟鼠标单击时显示上一个节点

Android WebView GetHitTestResult()在模拟鼠标单击时显示上一个节点,android,xamarin.android,android-webview,motionevent,Android,Xamarin.android,Android Webview,Motionevent,我需要在Android WebView中模拟单击HTML页面中的节点,然后记录单击了哪个节点。但是,当我在子类WebView中从OnTouchEvent调用GetHitTestResult时,它显示的不是刚刚单击的节点,而是刚刚单击之前单击的节点。(即:首先选择一个编辑节点,然后假点击Image1.png,OnTouchEvent中的GetHitTestResult显示原始编辑节点,而不是“Image1”。如果你点击Image2.png,GetHitTestResult显示“Image1”。然后

我需要在Android WebView中模拟单击HTML页面中的节点,然后记录单击了哪个节点。但是,当我在子类WebView中从
OnTouchEvent
调用
GetHitTestResult
时,它显示的不是刚刚单击的节点,而是刚刚单击之前单击的节点。(即:首先选择一个编辑节点,然后假点击Image1.png,
OnTouchEvent
中的
GetHitTestResult
显示原始编辑节点,而不是“Image1”。如果你点击Image2.png,
GetHitTestResult
显示“Image1”。然后点击其他内容,它显示“Image2”。)

实际的鼠标点击显示了正确的节点——正是通过我模拟的点击,
GetHitTestResult
显示了错误的节点。(在实际单击鼠标时,“向下”事件显示上一个节点,而“向上”事件显示当前/正确的节点。)不幸的是,我无法控制大多数网页,因此只能从日志代码中检测节点

我是否需要在模拟的“向下”点击和模拟的“向上”点击之间调用一些东西,以便Android/Xamarin/WebView小部件识别节点更改?(顺便说一句:这是在Xamarin.Android中的。)或者在Android中有没有办法强制它处理任何未完成的
DispatchTouchEvent
事件,这些事件可能仍然在UI线程中挂起?(可能问题是由于在假“向下”点击和假“向上”点击之间未处理的内容造成的?)

C#点击代码:

void ClickThePage(WebView webView, float left, float top) {

    long downTime = Android.OS.SystemClock.UptimeMillis();
    long eventTime = Android.OS.SystemClock.UptimeMillis() + 100;
    MotionEvent motionEventDown = MotionEvent.Obtain(
        downTime, eventTime, MotionEventActions.Down,
        left, top, (MetaKeyStates)0x0
    );

    downTime = Android.OS.SystemClock.UptimeMillis() + 200;
    eventTime = Android.OS.SystemClock.UptimeMillis() + 300;
    MotionEvent motionEventUp = MotionEvent.Obtain(
        downTime, eventTime, MotionEventActions.Down,
        left, top, (MetaKeyStates)0x0
    );

    // actually do the "Click"
    webView.DispatchTouchEvent (motionEventDown);
    System.Threading.Thread.Sleep (50);
    webView.DispatchTouchEvent (motionEventUp);

    motionEventDown.Recycle ();
    motionEventUp.Recycle ();
}
单击捕获代码:

public class SAWebView : WebView {
    ...
    public override bool OnTouchEvent (MotionEvent e) {
        Console.WriteLine("[SAWebView]: OnTouchEvent: Action = " + e.Action + 
            "\n HitTestResult.Type = " + GetHitTestResult().Type +
            "\n HitTestResult.Extra = " + GetHitTestResult().Extra);
        return base.OnTouchEvent (e);
    }
}

有什么解决办法吗?我现在被山姆的问题困扰着