【问题标题】:Uploading Files Not Working - trim the initial characters上传文件不工作 - 修剪初始字符
【发布时间】:2016-09-12 16:31:05
【问题描述】:

我正在尝试使用 WebBrowser 控件上传文件。它有时修剪起始字符,有时修剪三个然后选择窗口给出错误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

如果我添加额外的字符,它会正常工作,但它并不总是修剪一个字符,所以我无法添加额外的字符来解决这个错误。

【问题讨论】:

    标签: vb.net winforms file-upload webbrowser-control


    【解决方案1】:

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

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

    ...然后调用按钮单击

    【讨论】:

    • 你的意思是文字还是被截断了吗?如果是这样,您的代码是在页面完全加载后执行还是立即跟随导航命令执行?
    • 我试过这个。它没有用。出于安全原因,这不再可能。
    • 我在页面完全加载后执行代码
    • 无论如何,谢谢。你是对的 sendkeys 来得太快了。我做到了,我会发布我的答案@soohoonigan
    【解决方案2】:

    你是对的@soohoonigan,发送键出现得太快了,但这不是答案。我就是这样做的。

    这是我的代码:

    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
    

    一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      • 2017-11-17
      • 1970-01-01
      相关资源
      最近更新 更多