单位食堂报餐系统需要定时报名,很麻烦,于是偷懒写了个自动填写网页报餐的C#程序,参考了网上很多代码,把核心部分贴上来与大家分享
其实网页自动填写程序的原理就是用webBrowser控件将页面转为html代码并分析出相应的控件进行控制操作,和我们大家经常用的网上抢票软件是一样的,但是往往在登陆后需要进行下一步操作,所以需要等待页面加载完成的步骤.我没写过C#,这是我的第一个C#程序,最初以为只要while等待webBrowser1.ReadyState和webBrowser1.IsBusy状态即可,但后来经测试发现,空while语句是不会继续执行任何页面操作了,就卡在那里了,网上搜索后才知道,需要在while循环体内加入如下代码:
while (webBrowser1.Url.ToString() == pageUrl) { Application.DoEvents(); }
等待页面加载完成最好是判断url变化,因为如果遇到框架页(frame或iframe),每次框架页载入完成都会执行DocumentCompleted事件,所以无法确定是单一框架页载入完成还是整体页面载入完成.但此种判断只限于页面跳转的操作有效,
在循环体内
Application.DoEvents();
代码可以让程