上传文件不工作 - trim 个初始字符

Uploading Files Not Working - trim the initial characters

我正在尝试使用 WebBrowser 控件上传文件。它 trim 的起始字符有时是一个有时是三个然后选择 window 给出错误 Invalid file name!。似乎做不到,需要一些帮助。

这里是 Html:

    <input name="UploadedFile" id="UploadedFile" type="file" />
    <input name="up" id="up" type="button" value="Upload" />

这里是 vb 代码:

Dim el = elc.GetElementsByName("UploadedFile")
el.Item("UploadedFile").Focus()
'    SendKeys.Send("Capture.png" & "{ENTER}")
SendKeys.Send("C:\Capture.png" + "{ENTER}")
el.Item("UploadedFile").InvokeMember("Click")

文件上传按钮出现并按回车键,但无法在文件名区域输入完整的文件名。

如果我用这个SendKeys.Send("C:\Capture.png" + "{ENTER}")。它给出了这个错误: Choose window error screenshot

如果我用这个SendKeys.Send("Capture.png" + "{ENTER}")。它给出了这个错误: Choose window error screenshot

如果我输入额外的字符,它就可以正常工作,但它并不总是 trim 一个字符,所以我不能输入额外的字符来解决这个错误。

问题可能是 sendkeys 在焦点后面出现得太快,所以前几个字符没有被拾取。尝试通过设置文本框的值而不是尝试模仿用户击键来一次性用一行填充文本框,这可以同时替换 focus 和 sendkeys 行:

WebBrowser1.Document.GetElementById("UploadedFile").SetAttribute("value", "C:\Capture.png")

...然后调用按钮单击

你是对的@soohoonigan sendkeys 出现得太快了,但这不是解决问题的方法。我就是这样做的。

这是我的代码:

Dim el = elc.GetElementsByName("UploadedFile")
SetFile()
el.Item("UploadedFile").InvokeMember("Click")

Public Async Sub SetFile()

       Await Task.Delay(1000)
       SendKeys.Send("c:\Capture.png" & "{ENTER}")

End Sub

一切正常。