日期:2014-05-17  浏览次数:21188 次

求助,webbrowser 自动填表,找不到文本框
一个简单的小应用,c#窗体程序,用webbrowser打开网页,想完成自动填表的功能。

在网站的登录页面已经成功实现单击按钮输入用户名了,我从页面的html源代码中找到了用户名的id是userid,然后通过如下的代码实现自动输入:
mshtml.IHTMLDocument2 htmlDoc = (mshtml.IHTMLDocument2)webBrowser1.Document.DomDocument;
mshtml.IHTMLElement pro_name = (mshtml.IHTMLElement)htmlDoc.all.item("userid", 0);
pro_name.setAttribute("value", "12345", 1);
-------------------------------
但是问题出现了,当进入下一个页面(也就是我真正想要做自动填表功能的页面),我也是从html源代码中先找到各个输入框的id,我再用如上的代码却不能完成单击按钮-自动输入的功能了。

比方说我找到某个输入框的id是text_1,我用如下代码:
mshtml.IHTMLElement text_1= (mshtml.IHTMLElement)htmlDoc.all.item("text_1", 0);
text_1.setAttribute("value", "12345", 1);

系统报错setAttribute代码部分没有进行实例化。

webbrowser第一次用,很多东西不懂。我在msdn查了一下mshtml,也没查个究竟出来。我个人认为应该是登录页面比较简单,我直接用userid这个输入框没什么问题,而第二个页面比较复杂,我代码写的有问题,程序就没有找到这个text_1。

不知道我的想法是不是对,总之我现在解决不了这个问题了,麻烦哪位高手帮下忙,谢谢!

ps:第二个页面分为左右两侧,左侧是功能栏,我单击其中的填表选项,右侧就出现填表页面。

------解决方案--------------------
webbrowser是垃圾.不要浪费时间在这个东西上了
------解决方案--------------------
应该是分frame了吧。