webBrowser中使用InvokeMember("click")模拟连接点击事件,但是无效【急,在线等】

问题描述

做一个微信网页版发信息工具能够获取到发信息的按钮是个<a>标签privateHtmlElementsendBtn=null;//全局变量,表示发送按钮HtmlElementCollectionbtns=webWechat.Document.GetElementsByTagName("a");foreach(HtmlElementbtninbtns){//这里省略了,遍历获取发送信息的A元素sendBtn=btn;break;}sendBtn.OuterText="88";//改变文字,证明获取到了正确的元素sendBtn.InvokeMember("click");//模拟CLICK事件sendBtn.InvokeMember("submit");//模拟提交事件

但是还是无法发送信息,在线等

解决方案

本帖最后由 a532624876 于 2012-11-29 13:26:57 编辑
解决方案二:
断点,即时窗口里执行sendBtn.InvokeMember("click");返回一个nullsendBtn是一个正确的对象。
解决方案三:
急啊,大神求救
解决方案四:
webWechat.Document.GetElementsByTagName("a");得到的应该是一个数组吧,好歹也用个btn[0]什么的啊,或者用getElementByID()多好啊
解决方案五:
引用3楼z95469的回复:

webWechat.Document.GetElementsByTagName("a");得到的应该是一个数组吧,好歹也用个btn[0]什么的啊,或者用getElementByID()多好啊

不是说了么,已经通过遍历数组得到这个元素了,就是使用btn.InvokeMember("click");的时候无效啊
解决方案六:
引用3楼z95469的回复:

webWechat.Document.GetElementsByTagName("a");得到的应该是一个数组吧,好歹也用个btn[0]什么的啊,或者用getElementByID()多好啊

这个A元素没有ID和Name只能通过遍历获得
解决方案七:
sendBtn.OuterText="88";改成sendBtn.InnerText="88";
解决方案八:
参看:http://bbs.csdn.net/topics/300006111与innerHTML不同,outerHTML包括整个标签,而不仅限于标签内部的内容因此,你设置outertext的时候是把整个a替换成了88,因此,此时实际这个a已经不存在了
解决方案九:
结贴给分啊,兄弟
解决方案十:
你的按钮绑定click事件了吗
解决方案十一:
InvokeMember("click");返回一个null

你这个Click事件为null啊看看是不是你调用JS出错,或是加载的时候
解决方案十二:
兄弟解决么有啊?我也遇到同一个问题,求指导!
解决方案十三:
呵呵,可以结贴。
解决方案十四:
OuterText是获取内容吧,应该用innerText
解决方案十五:
我也碰到了这个问题,也是看完这个贴子后解决,实际上页面的HTML是加载完了,所以对像不为NULL,但是,JS脚本还未加载完,所以CLICK不起作用。。。解决加法:在INVOKEMEMBER之前,加个TIMER!
其他方案:
引用14楼nbgcqlk的回复:

我也碰到了这个问题,也是看完这个贴子后解决,实际上页面的HTML是加载完了,所以对像不为NULL,但是,JS脚本还未加载完,所以CLICK不起作用。。。解决加法:在INVOKEMEMBER之前,加个TIMER!

TIMER如何加?请大神求教
其他方案:
clickC大写
其他方案:
等待页面加载完成再进行你这段代码
其他方案:
http://www.daodao.com/Hotel_Review-g297446-d651294-Reviews-Galactic_Peace_International_Hotel-Nanchang_Jiangxi.html,这个页面里有一个“更多”的span,用invokemember("click")也没反应,已经确认页面加载完了,而且取到该span了,就是click没反应,只能通过模拟鼠标操作才有反应,不知道为什么,哪位大师能帮忙看看?
其他方案:
同步执行不行吗?等HTML执行完成之后再执行JS的东西。

时间: 2024-07-28 23:59:00

webBrowser中使用InvokeMember(&amp;quot;click&amp;quot;)模拟连接点击事件,但是无效【急,在线等】的相关文章

急,请大侠指点,InvokeMember(&amp;amp;quot;click&amp;amp;quot;)点击无效

问题描述 相关说明:页面使用extjs框架,现在想实现的效果是点击左边的一行,右边的grid会随之变化在extjs中是使用selectionchange事件监听.现在的问题是在div或td或tr元素所在HtmlElement中执行InvokeMember("click")或InvokeMember("selectionchange")右边的grid都无变化.测试demo已经上传,http://download.csdn.net/download/yongqingsh

js中事件绑定,$(&amp;amp;quot;body&amp;amp;quot;).on(&amp;amp;quot;click&amp;amp;quot;)与$(&amp;amp;quot;&amp;amp;quot;).click()区别

问题描述 js中事件绑定,$("body").on("click")与$("").click()区别 <dl> <dt>性别</dt> <dd> <a href="javascript:void(0);" class="sex_icon set_icon"></a><p>男</p> <a href=&quo

怎样使webBrowser中的登录状态不失效?

问题描述 我用C#在winform中使用webBrowser访问某个网站,并已登录,并且用timer定时调用link.InvokeMember("click");激发链接的点击事件,但过一段时间后,登录状态还是被退出了,怎么才能使登录状态不失效呢? 解决方案 解决方案二:这个也要看网站那边什么机制了.解决方案三:既然是webbrowser了就用cookie吧

WPF webbrowser控件点击事件的获取

问题描述 我在一个WPF项目里使用webbrowser控件打开一个网页,由于鼠标的点击事件不起作用,因此使用了js,如下:mshtml.HTMLDocumenthtmlDoc=myWebBrowser.Documentasmshtml.HTMLDocument;htmlDoc.parentWindow.execScript("document.onmousedown=function(e){window.location.href='cmd://onmousedown'}","

多线程-c#如何在子线程中获取form主线程中按钮点击事件

问题描述 c#如何在子线程中获取form主线程中按钮点击事件 如何在子线程中获取form主线程中按钮点击事件,子线程B中定义了一个新类classnew,获取点击事件也是在新类classnew中,并且获取完点击事件以后执行此类中下边的任务. 解决方案 你可以主线程中得到点击事件后,发送一个Event事件通知等告诉子线程,然后子线程就可以进行后面的任务处理 解决方案二: 不知道你说的获取事件是什么意思,是事件挂钩还是获得挂钩的事件处理函数的委托.请你说清楚. 解决方案三: 主线程中得到点击事件后,发

artdialog-asp:UpdatePanel包围中的asp:Button点击事件无效

问题描述 asp:UpdatePanel包围中的asp:Button点击事件无效 artdialog弹出框中 用一个asp:UpdatePanel包围的asp:Button点击事件无效,请各位指点,不好意思,新手还没有C币

在webbrowser中右键a标签都带有spm值,但在页面加载完毕后,在自定义按钮事件中用如下代码读取时,都没有spm值,求大神帮助。

问题描述 在webbrowser中右键a标签都带有spm值,但在页面加载完毕后,源文件的a标签都没有spm值,右击a标签之后spm值就会出现.估计是"//g.alicdn.com/alilog/mlog/??spm.js,spmact.js?v=141204"里的y()函数在加载的时候没有被触发.敢问大神怎么解决这个问题呢,只要实现我在模拟点击的a标签里有spm的值. 解决方案 本帖最后由 hunter1861 于 2015-10-05 15:17:24 编辑解决方案二:顶一下,大神们

webBrowser中操作网页元素全攻略

原文 webBrowser中操作网页元素全攻略 1.获取非input控件的值: webBrowser1.Document.All["控件ID"].InnerText; 或webBrowser1.Document.GetElementById("控件ID").InnerText; 或webBrowser1.Document.GetElementById("控件ID").GetAttribute("value"); 2.获取inp

模拟键盘-怎么在webbrowser中在鼠标点击的位置处得到焦点

问题描述 怎么在webbrowser中在鼠标点击的位置处得到焦点 我在webbrowser中载入淘宝界面,在搜索框处进行了模拟鼠标点击,我想在搜索框处获取焦点,然后模拟键盘输入文字.关键是焦点怎么获得.它不是控件,不能用this.控件.focus. 解决方案 我没试过,你看下面可以吗? 我的思路: 给文本框加载一个KeyPress事件,(例:enter事件) private void enter(object sender, KeyPressEventArgs e) { if (e.KeyCha