求助:webbrowser模拟点击网页按钮问题

问题描述

网页源代码如下:<inputclass="btn"name="un_submit"id="un_submit"type="button"value="提交"onclick="returnCheckForm(document.getElementById('form'),'','')">我用的代码:htmldocumentdoc=webbrowser1.document;HtmlElementCollectionbtt1=doc.GetElementsByTagName("input");foreach(HtmlElementdcinbtt1){if(dc.GetAttribute("id")=="un_submit"){dc.InvokeMember("click");}}请指教一下,谢谢

解决方案

解决方案二:
HtmlElementbtnSubmit=webBrowser1.Document.All["un_submit"];if(btnSubmit==null)return;btnSubmit.InvokeMember("click");
解决方案三:
我试了不行,仍然点不动
解决方案四:
没有分了,借楼主的帖子问个问题我弄了一个程序运行时间计数,1天都是好好的,运行了3天,今天居然出现倒计时了//运行时间计数器privatevoidtimer1_Tick(objectsender,EventArgse){longcurTickValue=Environment.TickCount;longdifference=curTickValue-compuTime;longcomputerDays,computerHours,computerMinutes,computerSeconds;computerDays=(difference/(86400*999))%24;computerHours=(difference/(3600*999))%24;computerMinutes=(difference/(60*999))%60;computerSeconds=(difference/999)%60;label12.Text="运行:"+computerDays.ToString()+"天"+computerHours.ToString()+"小时"+computerMinutes.ToString()+"分"+computerSeconds.ToString()+"秒";}

正常是:运行1天10小时5分10秒,这样,结果今天看,成了:运行-22天2小时45分10秒这样,而是时间是在倒着走,请问是哪里计算错误了。
解决方案五:
引用3楼phuai007的回复:

没有分了,借楼主的帖子问个问题我弄了一个程序运行时间计数,1天都是好好的,运行了3天,今天居然出现倒计时了//运行时间计数器privatevoidtimer1_Tick(objectsender,EventArgse){longcurTickValue=Environment.TickCount;longdifference=curTickValue-compuTime;longcomputerDays,computerHours,computerMinutes,computerSeconds;computerDays=(difference/(86400*999))%24;computerHours=(difference/(3600*999))%24;computerMinutes=(difference/(60*999))%60;computerSeconds=(difference/999)%60;label12.Text="运行:"+computerDays.ToString()+"天"+computerHours.ToString()+"小时"+computerMinutes.ToString()+"分"+computerSeconds.ToString()+"秒";}

正常是:运行1天10小时5分10秒,这样,结果今天看,成了:运行-22天2小时45分10秒这样,而是时间是在倒着走,请问是哪里计算错误了。

compuTime这个是啥?发出来看看
解决方案六:
引用楼主cyrzd的回复:

网页源代码如下:<inputclass="btn"name="un_submit"id="un_submit"type="button"value="提交"onclick="returnCheckForm(document.getElementById('form'),'','')">我用的代码:htmldocumentdoc=webbrowser1.document;HtmlElementCollectionbtt1=doc.GetElementsByTagName("input");foreach(HtmlElementdcinbtt1){if(dc.GetAttribute("id")=="un_submit"){dc.InvokeMember("click");}}请指教一下,谢谢

HtmlElementbtnSubmit=webBrowser1.Document.All["un_submit"];if(btnSubmit==null)return;btnSubmit.InvokeMember("onclick");试试

解决方案七:
引用4楼QQ234788028的回复:

compuTime这个是啥?发出来看看

longcompuTime;privatevoidForm1_Load(objectsender,EventArgse){compuTime=Environment.TickCount;}//运行时间计数器privatevoidtimer1_Tick(objectsender,EventArgse){longcurTickValue=Environment.TickCount;longdifference=curTickValue-compuTime;longcomputerDays,computerHours,computerMinutes,computerSeconds;computerDays=(difference/(86400*999))%24;computerHours=(difference/(3600*999))%24;computerMinutes=(difference/(60*999))%60;computerSeconds=(difference/999)%60;label12.Text="运行:"+computerDays.ToString()+"天"+computerHours.ToString()+"小时"+computerMinutes.ToString()+"分"+computerSeconds.ToString()+"秒";}

解决方案八:
不行哦,兄弟,期待大神出现,谢谢你哈,那个按钮纹丝不动,看不到点击的样子
解决方案九:
HtmlElementCollectionbtt1=doc.GetElementsByTagName("input");改成:HtmlElementbtt1=doc.GetElementById(“input”);看我的部分代码://网页加载完毕,开始工作HtmlDocumenthtmlDoc=webBrowser.Document;Int32aa=0;Int32lc=Convert.ToInt32(textBox6.Text);//已发楼层Int32gs=Convert.ToInt32(textBox7.Text);//已发礼包个数Stringm=String.Empty;foreach(Stringkinarr){m=arr1[i];if(check(m)==false)//检测当前用户是否已经发送过了{HtmlElementinput=htmlDoc.GetElementById(k);if(input!=null){aa=Convert.ToInt32(GetOffset(input).Y);//得到元素坐标htmlDoc.Window.ScrollTo(0,aa-360);//设置坐标Delay(2000);if(MessageBox.Show("按是发送,按否跳过","提示",MessageBoxButtons.YesNo)==DialogResult.Yes){input.InvokeMember("click");。。。。。。。。。

解决方案十:
额,如果btnSubmit.InvokeMember("click");不行的话,那么有可能是页面做了防止webBroswer自动点击的处理,那么只好用sendMessage调用windowsAPI来模拟鼠标点击了,参考这个例子:http://blog.csdn.net/chen504390172/article/details/18525823
解决方案十一:
引用3楼phuai007的回复:

没有分了,借楼主的帖子问个问题我弄了一个程序运行时间计数,1天都是好好的,运行了3天,今天居然出现倒计时了//运行时间计数器privatevoidtimer1_Tick(objectsender,EventArgse){longcurTickValue=Environment.TickCount;longdifference=curTickValue-compuTime;longcomputerDays,computerHours,computerMinutes,computerSeconds;computerDays=(difference/(86400*999))%24;computerHours=(difference/(3600*999))%24;computerMinutes=(difference/(60*999))%60;computerSeconds=(difference/999)%60;label12.Text="运行:"+computerDays.ToString()+"天"+computerHours.ToString()+"小时"+computerMinutes.ToString()+"分"+computerSeconds.ToString()+"秒";}

正常是:运行1天10小时5分10秒,这样,结果今天看,成了:运行-22天2小时45分10秒这样,而是时间是在倒着走,请问是哪里计算错误了。

感觉计算没错,会不会是你的系统已经运行很多天了,然后超出了long类型的范围,所以得到的是负值
解决方案十二:
引用10楼landy1023的回复:

感觉计算没错,会不会是你的系统已经运行很多天了,然后超出了long类型的范围,所以得到的是负值

服务器是运行了很多天了,基本上很少重启过,怎么解决呢
解决方案十三:
引用11楼phuai007的回复:

Quote: 引用10楼landy1023的回复:
感觉计算没错,会不会是你的系统已经运行很多天了,然后超出了long类型的范围,所以得到的是负值

服务器是运行了很多天了,基本上很少重启过,怎么解决呢

那么就不要用Environment.TickCount了,他是int类型,你又不经常重启,很容易超出范围的,直接用dateTime来计算时间好了DateTimet1;DateTimet2;privatevoidForm1_Load(objectsender,EventArgse){t1=DateTime.Now;}//运行时间计数器privatevoidtimer1_Tick(objectsender,EventArgse){t2=DateTime.Now;TimeSpants=t2-t1;label12.Text="运行:"+ts.Days+"天"+ts.Hours+"小时"+ts.Minutes+"分"+ts.Seconds+"秒";}
解决方案十四:
引用12楼landy1023的回复:

Quote: 引用11楼phuai007的回复:
Quote: 引用10楼landy1023的回复:
感觉计算没错,会不会是你的系统已经运行很多天了,然后超出了long类型的范围,所以得到的是负值

服务器是运行了很多天了,基本上很少重启过,怎么解决呢

那么就不要用Environment.TickCount了,他是int类型,你又不经常重启,很容易超出范围的,直接用dateTime来计算时间好了DateTimet1;DateTimet2;privatevoidForm1_Load(objectsender,EventArgse){t1=DateTime.Now;}//运行时间计数器privatevoidtimer1_Tick(objectsender,EventArgse){t2=DateTime.Now;TimeSpants=t2-t1;label12.Text="运行:"+ts.Days+"天"+ts.Hours+"小时"+ts.Minutes+"分"+ts.Seconds+"秒";}

实在感谢,已经用上了,不过不好意思啊,我不能给你分。也多谢楼主,祝楼主的问题早日解决,不知道楼主用我发的那个方法有用没有,我做的那个项目,也是模拟点击的。
解决方案十五:
你蛮聪明的,晓得借别人的贴来问问题

时间: 2025-01-18 22:06:33

求助:webbrowser模拟点击网页按钮问题的相关文章

vc-VC用webbrowser自动点击网页上的按钮

问题描述 VC用webbrowser自动点击网页上的按钮 VARIANT vt; COleVariant vaUrl=_T("E:ie.html"); m_web.Navigate2(vaUrl,&vt,&vt,&vt,&vt); IDispatch *pDisp=m_web.GetDocument(); IHTMLDocument2 *pDocument; IHTMLElementCollection *pCollection; pDisp->Q

C# winform webbrowser 模拟点击操作

问题描述 C# winform webbrowser 模拟点击操作 获取到的网页代码是 是网页里的一个按钮,我想问问怎么实现点击它. 解决方案 webbrowser.document.all[id].click 解决方案二: webbrowser.document.body.all[id].click 相关文章 c# winform-C# WebBrowser StatusText 取不到值 c# webbrowser怎么模拟点击 淘宝的宝贝详情的成交记录 c# webbrowser怎么获得模拟

怎么用C#的webBrowser模拟点击天猫页面上的标签

问题描述 怎么用C#的webBrowser模拟点击选中天猫页面上的类型标签?请高手指教如图,配有页面元素截图:我用的是C#,试过如下的方法,试过模拟点击标签"<li>"和"<a>"都不行,请高手指点指点.//HtmlElementSubmit;//HtmlElementCollectionhec=this.web1.Document.GetElementsByTagName("li");//foreach(HtmlElem

c#模拟点击网页中一个按钮出问题了

问题描述 HtmlElementtbUserid=webBrowser1.Document.GetElementById("username");HtmlElementtbPasswd=webBrowser1.Document.GetElementById("password");HtmlElementbtnSubmit=webBrowser1.Document.GetElementById("login");//三个元素其一为空返回加载后才执行

webbrowser 逐一点击网页内链接

问题描述 打开百度首页,逐一打开页面里的网页,使用了time控件,每隔一段时间点击,但运行效果并没有一一打开,而是一直在运行最后一个链接里的内容http://www.baidu.com/duty/请问这个是怎么回事,要怎么处理,麻烦提供下具体的代码.谢谢!!namespacewebbrowser点击{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidtextBox1_KeyDown(objec

模拟点击-delphi中,点击【程序上的】打开按钮后自动打开网页并实现点击【网页中的】一个按钮

问题描述 delphi中,点击[程序上的]打开按钮后自动打开网页并实现点击[网页中的]一个按钮 假设以打开 http://mail.163.com/ 为例,程序上点击打开按钮后 打开网页并模拟点击'注册'按钮.如何实现???? [id="lfBtnReg" class="btn btn-side btn-reg" href="http://reg.email.163.com/mailregAll/reg0.jsp?from=163mail_right&qu

webbrowser 控件多线程模拟点击链接打开新窗口软件执行遇到问题。

问题描述 1.当前看到的tagpage线程窗口是通过动态生成,4个webbrowser窗口也是.2.当前UI加载完毕后,通过线程while(true)循环窗口动作,执行到UI时用委托去处理UI3.网页窗口模拟点击后采用的是外部独立IE窗口去访问.3.设计时没有考虑到模式去设计,传统初级菜鸟编写方式.[机器配置]现在遇到的问题是:1.如果不开启(执行)模拟点击网页窗口的链接,可以正常运行挂机N天都没问题,一旦开启后没多久就出现内存使用过高.系统卡不能操作等一些列问题,必须关闭软件系统才正常,但单独

curl-linux模拟定时访问网页问题

问题描述 linux模拟定时访问网页问题 求指导: 我打算用linux命令行curl模拟登录网页www.xxx.com/a.php?a=0&record=0,并把输出内容写入服务器上的一个文件save.txt 同时a.php文件有如下变量: $a=$_GET['a']; $record=$_GET['record'];; foreach循环... $a=x $record = y; echo "内容"; 然后每个10分钟使用上次执行完以后的$a和$record值,继续执行模拟打

jquery绑定#ID响应回车键和模拟点击事件的例子

例子.  代码如下 复制代码 $("#loginbox input[type='submit']").click(function() {     //Ajax 与服务器交互验证 }); $('#loginbox').keydown(function(e){     if(e.keyCode == 13){         //模拟点击登陆按钮,触发上面的 Click 事件         $("#loginbox input[type='submit']").cl