您的位置:首页 > 编程语言 > C#

C# webBrowser 模拟登陆填充操作等(写网页注册机之类的时候要用到)

2013-07-05 12:20 477 查看
来自:http://blog.chinaunix.net/uid-24427209-id-2608307.html


C# ,webBrowser,登录,数据填充,模拟点击链接,运行JS函数,检测网页是否载入完成


判断是否网络正常


private bool IsConnectedToInternet()


{


int Desc;


return internet.InternetGetConnectedState(out Desc, 0);


}


设置默认页面:


webBrowser1.Navigate(new Uri("http://www.ic2ic.com/copy.jsp"));


登录代码:


private void btnlogin_Click(object sender, EventArgs e)


{


webBrowser1.Document.GetElementById("id").InnerText =txtuser.Text.ToString().Trim();//fill name



webBrowser1.Document.GetElementById("passwd").InnerText =txtpwd.Text.ToString().Trim();//fill pwd


HtmlElement formLogin = webBrowser1.Document.Forms["frmLogin"];


formLogin.InvokeMember("submit");


Thread.Sleep(5000);


herfclick("http://www.ic2ic.com/upload.jsp");//这是登录成功的操作,跳转到//upload.asp


//注意不是直接跳过去的,模拟点击链接


//SESSION不会丢失


herfclick("http://www.ic2ic.com/copy.jsp");


}



模拟点击链接:


private void herfclick(string url)


{


for (int i = 0; i < webBrowser1.Document.All.Count; i++)


{


if (webBrowser1.Document.All[i].TagName == "A" && webBrowser1.Document.All[i].GetAttribute("href").ToString().Trim() ==url)


{


webBrowser1.Document.All[i].InvokeMember("click");//引发”CLICK”事件


break;


}


}


}


运行网页中的JS函数


private void callJsMethod(string jsfun,string jsParameter)//函数名字,函数参数


{


HtmlDocument doc = webBrowser1.Document;


doc.InvokeScript(jsfun,new object[]...{jsParameter});


}


填充数据:


private void filldate(string txt)


{


HtmlElement frmWord = webBrowser1.Document.Forms["frmWord"];//找到from


HtmlElementCollection txtarea = frmWord.GetElementsByTagName("TEXTAREA");


HtmlElementCollection radio = frmWord.GetElementsByTagName("INPUT");


radio[2].InvokeMember("click");//选择radio控件


txtarea[0].InnerText = txt.ToString();


}


原理很简单,在webBrowser1的DocumentCompleted事件中判断一下当前完成的url地址,如果当前完成url和当初要打开的url相等,就确定当前网页已经加载完成



//string strURL 要找开的页面的URL

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

{

if (e.Url.ToString().Trim() == strURL.Trim())

{

//已经加载完成

}


}


控制流动条


webBrowser1.Document.Window.ScrollTo(100, 100);//滚动到你要的坐标,以像素为单位

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐