1

我需要填写的输入字段的名称值设置为 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();

但是该按钮永远不会被点击。我不知道是因为它不是真正的按钮,还是因为它没有名称属性并且我正在尝试使用 id。

无论如何,有没有人看到解决这个问题?

4

1 回答 1

2

如果单击调用未引发 NullReferenceException,则您找到了该元素。但将来最好使用标准的 IHTMLDocument3::getElementById 或 IHTMLDocument3::getElementsByName 而不是 document.all。

至于为什么点击不起作用,这取决于点击应该如何工作。鼠标点击有很多副作用,如果鼠标不在鼠标按下和鼠标按下之间的元素上方,浏览器可能会限制这些副作用。

如果单击应该调用javascript函数,则直接调用该函数(ExecScript)。否则,找到登录表单元素,如果有,则调用其 onsubmit 处理函数,然后调用其提交方法。

于 2012-06-07T23:05:24.967 回答