所以我设置文本框的值,然后点击按钮提交搜索。文本框中的值显示了我想要的内容,但是当我触发按钮的单击时,网站在页面上给出了一条错误消息,就好像文本框值为空(即使我正在查看它并且它显示了我想要的东西。
现在,如果我手动点击按钮,它仍然认为文本框是空的。但是,如果我手动点击文本框(只需单击,不要更改任何内容),然后手动单击按钮,它就可以正常工作。
显然幕后发生了一些事情,要求文本框在页面识别输入内容之前就已经有了焦点。
private void SetText(string elementID, string text)
{
foreach (HtmlWindow hw in this.webBrowser1.Document.Window.Frames)
{
HtmlElement element = hw.Document.GetElementById(elementID);
if (element != null)
{
element.SetAttribute("value", text);
// here's where I'm trying things
break;
}
}
}
这是我尝试过的(不确定所有这些都是有效的东西,但无论如何我都试过了:
我已经尝试将焦点设置在文本框上,然后通过在按钮上设置它来删除它 - element.Focus()然后再单击按钮之前的button.Focus()。
我已尝试调用已更改的事件 - element.InvokeMember("更改"),element.InvokeMember("已更改"),element.InvokeMember(&#34) ; onchange"),element.InvokeMember(" textchanged")。
我尝试过调用焦点事件 - element.InvokeMember("焦点")。
我尝试过调用lostfocus事件 - element.InvokeMember(" lostfocus")。
我不知道当有人实际输入文本框时,网页预计会被触发,但它显然阻止了该页面的显示#34;"我的代码把它放在那里。
有什么想法吗?