首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IHTMLDocument --按ID而不是名称单击IHTMLElement

IHTMLDocument --按ID而不是名称单击IHTMLElement
EN

Stack Overflow用户
提问于 2012-06-08 01:03:00
回答 1查看 8.1K关注 0票数 1

我需要填写的输入字段的name值设置为j_password。我想要单击的按钮是div中的一个链接,它的id设置为loginBtn。

我正在尝试这样的东西:

代码语言:javascript
复制
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。

不管怎样,有没有人看到解决这个问题的办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-08 07:05:25

如果单击调用没有抛出NullReferenceException,那么您就找到了该元素。但将来最好使用标准的IHTMLDocument3::getElementById或IHTMLDocument3::getElementsByName,而不是document.all。

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

如果点击应该调用一个javascript函数,只需直接调用该函数(ExecScript)。否则,找到login表单元素,调用它的onsubmit处理函数(如果有),然后调用它的提交方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10936454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档