登陆页面的源码如下:
<div class="field">
<label>帐户名:</label>
<input type="text" style="" tabindex="1" maxlength="32" value="手机号/会员名/邮箱" size="32" name="TPL_username" class="login-text J_UserName"/>
</div>
<div class="field">
<label>密 码:</label>
<input type="password" tabindex="2" size="32" value="" maxlength="20" id="TPL_password" name="TPL_password" class="login-text"/>
<span class="forget-pw"><a href="http://member1.taobao.com/member/forgot_passwd.jhtml">忘记密码</a></span>
</div>
<div class="login-submit">
<input name='_tb_token_' type='hidden' value='e3b556de5ed43#7072304680877728'>
<input type="hidden" name="actionForStable" value="enable_post_user_action" />
<input type="hidden" name="action" value="Authenticator" />
<input type="hidden" name="mi_uid" value="" />
<input type="hidden" name="mcheck" value="" />
<input type="hidden" name="TPL_redirect_url" value="" />
<input type="hidden" name="_oooo_" value="" />
<input type="hidden" name="event_submit_do_login" value="anything" />
<input type="hidden" name="abtest" value="" />
<input type="hidden" name="pstrong" value="" />
<input type="hidden" name="from" value="" />
<input type="hidden" name="yparam" value="" />
<input type="hidden" name="done" value="" />
<input type="hidden" name="loginType" value="3" />
<input type="hidden" name="tid" id="tid"/>
<input type="hidden" name="support" value="000001"/>
<input type="hidden" name="CtrlVersion" value="1,0,0,7"/>
<button value="" tabindex="3" type="submit">登 录</button>
<span class="go-register"><span>
</div>C#代码如下:
HtmlDocument doc = webBrowser1.Document; //获取document对象
HtmlElement btn = null;
foreach (HtmlElement em in doc.All) //轮循
{
string str = em.Name;
string id = em.Id;
if ((str == "TPL_username") || (str == "TPL_password") || (str == "submit")) //减少处理
{
switch (str)
{
case "TPL_username": em.SetAttribute("value", "用户名"); break; //赋用户名
case "TPL_password": em.SetAttribute("value", "密码"); break; //赋密码
case "submit": btn = em; break; //获取submit按钮
default: break;
}
}
}
btn.InvokeMember("click"); //触发submit事件
<div class="field">
<label>帐户名:</label>
<input type="text" style="" tabindex="1" maxlength="32" value="手机号/会员名/邮箱" size="32" name="TPL_username" class="login-text J_UserName"/>
</div>
<div class="field">
<label>密 码:</label>
<input type="password" tabindex="2" size="32" value="" maxlength="20" id="TPL_password" name="TPL_password" class="login-text"/>
<span class="forget-pw"><a href="http://member1.taobao.com/member/forgot_passwd.jhtml">忘记密码</a></span>
</div>
<div class="login-submit">
<input name='_tb_token_' type='hidden' value='e3b556de5ed43#7072304680877728'>
<input type="hidden" name="actionForStable" value="enable_post_user_action" />
<input type="hidden" name="action" value="Authenticator" />
<input type="hidden" name="mi_uid" value="" />
<input type="hidden" name="mcheck" value="" />
<input type="hidden" name="TPL_redirect_url" value="" />
<input type="hidden" name="_oooo_" value="" />
<input type="hidden" name="event_submit_do_login" value="anything" />
<input type="hidden" name="abtest" value="" />
<input type="hidden" name="pstrong" value="" />
<input type="hidden" name="from" value="" />
<input type="hidden" name="yparam" value="" />
<input type="hidden" name="done" value="" />
<input type="hidden" name="loginType" value="3" />
<input type="hidden" name="tid" id="tid"/>
<input type="hidden" name="support" value="000001"/>
<input type="hidden" name="CtrlVersion" value="1,0,0,7"/>
<button value="" tabindex="3" type="submit">登 录</button>
<span class="go-register"><span>
</div>C#代码如下:
HtmlDocument doc = webBrowser1.Document; //获取document对象
HtmlElement btn = null;
foreach (HtmlElement em in doc.All) //轮循
{
string str = em.Name;
string id = em.Id;
if ((str == "TPL_username") || (str == "TPL_password") || (str == "submit")) //减少处理
{
switch (str)
{
case "TPL_username": em.SetAttribute("value", "用户名"); break; //赋用户名
case "TPL_password": em.SetAttribute("value", "密码"); break; //赋密码
case "submit": btn = em; break; //获取submit按钮
default: break;
}
}
}
btn.InvokeMember("click"); //触发submit事件
webBrowser1.Document.All["TPL_username"].SetAttribute("value", "用户名");
按钮。。
你那样的话有可能会先获取到按钮
也就是先点了按钮的
现在网页中登陆按钮无法获取到呀,你看它的脚本<button value="" tabindex="3" type="submit">登 录 </button>,我不知道怎么能够获取到它,然后执行click
HtmlElement btnSubmit = webBrowser.Document.All["submitbutton"];
//可以试一试给该页一个回车的命令
//先webBrowser1获得焦点,然后
SendKeys.Send(Keys.Enter.ToString());//模拟按下回车键
HtmlElement ClickBtn = null;
HtmlDocument doc = wbtest.Document;
//搜寻表单中的元素.
for (int i = 0; i < doc.All.Count; i++)
{
if (doc.All[i].TagName.ToUpper().Equals("INPUT"))
{
switch (doc.All[i].Name)
{
case "email": //用户名文本框 的 name
doc.All[i].InnerText = "username";
break;
case "password": //密码文本框 的 name
doc.All[i].InnerText = "password";
break;
}
}
//按钮框 的 元素名,提交按钮是用BUTTON实现的.中间内容是登 陆
if (doc.All[i].TagName.ToUpper().Equals("BUTTON"))
{
if (doc.All[i].InnerText == "登 录")
{
ClickBtn = doc.All[i];
}
}
}
ClickBtn.InvokeMember("Click"); //执行按扭操作
int interval = 2000; //2 秒
//执行登陆后的下载操作,以178的DKP登陆后下载界面为例
wbtest.Navigate("http://dkp.178.com/action=download&option=log&guild_id=50519&setting=midkp");
但是这样登陆后,下载东西还是要跳框..我在想用WebClient能否实现.看过别人写的看不懂.