我试图标记一些复选框,然后使用网页浏览器提交一个表单,我成功了,问题是我的程序越来越多,它似乎提交了表单,然后我的表单在提交之前,再次提交,然后再提交和again...again....again.无穷无尽的。我不明白为什么。
我意识到这部分发生了这样的事情:
form.InvokeMember ("submit");这是我的密码
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.Navigate("https://www.mysite.com");
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
this.Text = e.Url.ToString() + " loaded";
webBrowser1.Document.GetElementById("check1").InvokeMember("CLICK");
webBrowser1.Document.GetElementById("check2").InvokeMember("CLICK");
webBrowser1.Document.GetElementById("check3").InvokeMember("CLICK");
webBrowser1.Document.GetElementById("check4").InvokeMember("CLICK");
webBrowser1.Document.GetElementById("check5").InvokeMember("CLICK");
foreach (HtmlElement form in webBrowser1.Document.Forms)
{
if (form.Name == "SearchForm")
{
form.InvokeMember("submit");
}
}
}
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
this.Text = "Navigating";
}发布于 2014-03-07 09:49:55
你已经说过,任何时候,当你完成一个页面,你想提交搜索表格。所以当提交完成后,它将完成页面的加载.你会触发同样的事件。这是一个完全自然的循环。
您应该问自己要检测到什么条件,这意味着您应该在页面加载完成后提交表单。例如,只有在搜索框中没有东西时,才会出现这种情况吗?还是根据URL进行更改?或者,在提交表单之前,您只想解开“文档已完成”的事件处理程序吗?没有更多的背景,我们无法真正判断,但这就是为什么你要设定这种行为。
发布于 2014-03-07 09:51:07
维克多,尝试为提交操作设置一个不同的表单(*.aspx)。
https://stackoverflow.com/questions/22246634
复制相似问题