0

我有一个带有文件上传对话框的网页。我正在 Windows 窗体应用程序中的 WebBrowser 控件中查看此页面。我想自动输入并提交表格。

我意识到这个问题已经被问过(很多)。我见过这么多,我数不清了。但是没有一个解决方案对我有用。

我的网页看起来像

<form method="post" enctype="multipart/form-data">
   <input id="file" name="file" type="file"/>
   <input type="submit"/>
</form

我的 C# 应用程序看起来像

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        webBrowser1.Document.GetElementById("file").Focus();
        SendKeys.Send("C:\\Users\\Merlin Sweden\\Desktop\\extraDirTest\\myImage.jpg{ENTER}");
    }
}

从我尝试过的所有事情来看,至少感觉我已经接近了。无论如何,在执行对话框时会打开并输入部分路径(weden\Desktop\extraDirTest\myImage.jpg)。我认为这可能是某种最大输入长度,我在路径中添加了另一个目录(extraDirTest),发现这不是问题。

所以我认为它与空间有关,但我找不到任何替代进入空间的方法。此外,如果我发送的 PATH 不正确,则对话框根本不会打开。如果我在表单上放置一个文本框并尝试在其中输入它,那么一切正常。

我不明白发生了什么或我应该如何解决这个问题。

谁能帮我?

谢谢

编辑 也许值得一提的是,将文件移动到“C:\myImage.jpg”并更改路径不会做任何事情。

4

1 回答 1

0

只输入一半的原因是因为“焦点”不会触发对话框。空间可以。所以对话框只在空格之后打开,并且在它进入之后发送任何内容。

由于某种原因,空格后面的字符也被遗漏了,可能与时间有关。

我已经完成了

SendKeys.Send("  C:\\extraDirTest\\sednasoftwaread.jpg{ENTER}");

之后您也不能立即提交表格,因为表格将在填写输入之前提交。睡觉也不是答案,因为对话框一直在睡觉。使用计时器可以在输入输入后提交表单。

大家感谢您的帮助!

于 2013-04-02T14:41:24.253 回答