Cefsharp 如何处理特殊情况下的输入

时间:2021-07-27 23:38:42

标签: javascript cefsharp

我正在尝试填写网站 (facebook) 上的一些输入文本框,我能够很好地使用下拉菜单,但似乎有一些事件触发了我无法将输入文本字段设置为任何值。该值将短暂显示然后清除。我尝试通过获取元素的 x,y 坐标来单击输入字段,然后通过 javascript 设置值来尝试解决方法,但在此值清除之后。我不确定此时我还能做什么来设置这个值。这是我正在使用的一些代码。有没有人知道我有什么方法可以准确地找出阻止和清除此输入的原因?

'''

chromeBrowser.ShowDevTools() DimmilesToUse As String = _Mileage.Replace(",", "") Dim loginScript As String = "document.querySelectorAll('[aria-label=""Mileage""]')[0].children[0].children[0].children[1].value = '" + milesToUse + "';"

    chromeBrowser.GetBrowser().GetHost().SendMouseWheelEvent(141, 141, 0, -350, CefEventFlags.None)
    Thread.Sleep(500)
    Dim jsonString As String = ""
    Dim jsReponse As JavascriptResponse = Await chromeBrowser.EvaluateScriptAsync(

"(函数(){ var bnt = document.querySelectorAll('[aria-label=""Mileage""]')[0]; bnt.focus(); var bntRect = bnt.getBoundingClientRect(); 返回 JSON.stringify({ x: bntRect.left, y: bntRect.top }); })();" ) If (jsReponse.Success AndAlso jsReponse.Result IsNot Nothing) Then jsonString = CType(jsReponse.Result, String) 如果结束

    If (jsonString <> "") Then
        Dim jsonObject As JObject = JObject.Parse(jsonString)
        Dim xPosition As Integer = CType(jsonObject("x"), Integer) + 1
        Dim yPosition As Integer = CType(jsonObject("y"), Integer) + 1

        Thread.Sleep(500)
     
        chromeBrowser.GetBrowser().GetHost().SendMouseMoveEvent(xPosition, yPosition, False, CefEventFlags.None)
        Thread.Sleep(50)
        chromeBrowser.GetBrowser().GetHost().SendMouseClickEvent(xPosition, yPosition, MouseButtonType.Left, False, 1, CefEventFlags.None)
        Thread.Sleep(2000)

        chromeBrowser.GetBrowser().GetHost().SendMouseClickEvent(xPosition, yPosition, MouseButtonType.Left, True, 1, CefEventFlags.None)
        Thread.Sleep(500)
        Dim test As JavascriptResponse = Await chromeBrowser.EvaluateScriptAsync(loginScript)

'''

0 个答案:

没有答案