C# 使用webBrowser控件获取网页中的账号密码登录网页元素并自动填写模拟自动登录?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 使用webBrowser控件获取网页中的账号密码登录网页元素并自动填写模拟自动登录?相关的知识,希望对你有一定的参考价值。
想实现qq音乐网页版自动登录功能,但是不知道怎么用webBrowser控件获取对应的网页元素。之前别的网页可以用下面的方式获取成功,但是这个qq音乐网页不行了,请大神指教!
以前是这样做的,如图1:
htmlElement user = webBrowser1.Document.All["username"];//获取账号文本框,ID=username
HtmlElement password = webBrowser1.Document.All["password"];//获取密码文本框,ID=password
HtmlElement LoginButton = webBrowser1.Document.All["sso_login"];//获取登录按钮,ID=sso_login
user.SetAttribute("value","abc");//给账号文本框内容设置为“abc”password.SetAttribute("value",“*123” );//给密码文本框内容设置为“*123”
LoginButton.InvokeMember("click");//调用按钮的点击事件
现在qq音乐网页同样方法不行了,如图2
QQ音乐登录的方式好像是API的方式,给你两个方案
1、API方式:然后输入对应的参数,你就可以登录成功,这时你就可以做自己的想做的事了
2、模拟点击(selenium)方式:即使利用seleium模拟鼠标点击网页,实现登录,这个方式属于笨拙的方式
注意:有时候可能出现需要输入验证码,这时你就需要识别验证码,给你推荐 tesseract-ocr 这个插件,源码地址tesseract-orc 不明白的留言吧
追问1、API方式指的是啥呀?可以具体点不?
2、selenium方式,是不是运行软件的时候,自己的鼠标就不能乱动了?
3、验证码还没进行到这一步,只求先解决能输入帐号密码的功能就行
那有什么其他方法吗?还请指教了!
追答指教谈不上。尝试一下获得class属性值的看看有没有什么收获
追问之前也用过遍历className=inputstyle来找,但是也不行,结果值没有等于这项的
追答不好意思 刚刚看见 如果实在不能 控制 能不能尝试脚本控制
参考技术C 我觉得是因为qq的是个弹框,你代码执行的时候,弹框还没出现,所以要循环等待?追问你好,我是把弹框点开后,所有界面出现了,我再去用代码找那些元素的,但是不行。这种弹窗是有什么别的特殊方法吗?求指教!
追答你把现有代码发来看看(最好是放github)
追问我就是在winform窗体中,用webBrowser控件打开y.qq.com,然后把登录界面手动点开,再在一个按钮里面加下面代码。只不过支行完,都是没有值,元素都是Null
HtmlElement user = webBrowser1.Document.All["u"];
HtmlElement password = webBrowser1.Document.All["p"];
HtmlElement LoginButton = webBrowser1.Document.All["login_button"];
LoginButton.InvokeMember("click");
共享代码调试
c#添加webBrowser控件,如何实现自动填写打开的网页中的登录帐号,密码,并且自动登陆?
比如该网页用户名ID:use,密码:pass,登陆按钮用的是alink=asb()的
cookie打开网页时进行cookie认证(可考虑对cookie与IP的认证)
在Page_load里面进行cookie认证,认证通过直接跳转到登录后页面(为啥自动登录还要填登录账号和密码呢...) 参考技术A cookie认证,Page_load中赋值,再出发登录事件即可
以上是关于C# 使用webBrowser控件获取网页中的账号密码登录网页元素并自动填写模拟自动登录?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 C# WebBrowser 控件中获取重定向的 url
C#在控件webBrowser中操作页面,如何取到网页登录时的用户名密码