我需要填写的输入字段的name值设置为j_password。我想要单击的按钮是div中的一个链接,它的id设置为loginBtn。
我正在尝试这样的东西:
mshtml.IHTMLDocument2 doc = ((mshtml.IHTMLDocument2)webBrowserControl.Document);
((mshtml.IHTMLElement)doc.all.item("j_password")).setAttribute("value", password);
((mshtml.IHTMLElement)doc.all.item("loginBtn")).click();但是这个按钮从来没有被点击过。我不知道是因为它不是真正的按钮,还是因为它没有name属性,而我正在尝试使用id。
不管怎样,有没有人看到解决这个问题的办法?
发布于 2012-06-08 07:05:25
如果单击调用没有抛出NullReferenceException,那么您就找到了该元素。但将来最好使用标准的IHTMLDocument3::getElementById或IHTMLDocument3::getElementsByName,而不是document.all。
至于为什么click不能工作,这取决于click是如何工作的。鼠标点击有很多副作用,如果鼠标不在鼠标按下和鼠标释放之间的元素上,浏览器可能会限制这些副作用。
如果点击应该调用一个javascript函数,只需直接调用该函数(ExecScript)。否则,找到login表单元素,调用它的onsubmit处理函数(如果有),然后调用它的提交方法。
https://stackoverflow.com/questions/10936454
复制相似问题