如何在我的c#窗口表单中自动输入一个上传表单
本文关键字:表单 一个 输入 我的 窗口 | 更新日期: 2023-09-27 18:07:08
我有一个带有文件上传对话框的网页。我正在从Windows窗体应用程序中的WebBrowser控件查看此页面。我想要自动输入并提交表单。
我意识到这个问题以前被问过(很多次)。我见过太多了,我都数不清了。但是没有一个方法对我有效。
My网页看起来像
<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"并改变路径并没有做任何事情。
只输入一半的原因是因为'focus'没有触发对话框。是空间。因此,对话框只在空格后打开,之后发送的任何内容都将进入。
由于某种原因,空格后面的字符也被省略了,可能与计时有关。
我最后做了
SendKeys.Send(" C:''extraDirTest''sednasoftwaread.jpg{ENTER}");
之后您也不能立即提交表单,因为表单将在填写输入之前提交。睡觉也不是答案,因为对话一直在睡觉。使用计时器,表单可以在输入后提交。
谢谢大家的帮助!