关于webbrowser 设置文本内容 实现登录问题

.Net技术 码拜 7年前 (2015-11-12) 678次浏览
公司要求做一个从银行自动获取到余额和交易情况的系统,使用的是民生银行.
但民生银行在登录页的密码框是 使用的是  

<embed id="_ocx_passwordChar_login" maxlength="20" edittype="0" type="application/x-cmbc-edit" tabindex="2" class="ocx_style" input_1013="authenticateUser()" input_1009="document.getElementById(""_vTokenName"").focus()" title="CMBCEDIT">

 标签,
使用   tbPassword.SetAttribute(“value”, “aaa11aaa11”); 这样是没法对此控件进行赋值, 使用 SendKeys.SendWait(letter.ToString()); 模拟键盘事件也不行..
讨教各位高手,不知道还有什么好办法不?
民生银行地址:  https://per.cmbc.com.cn/pweb/static/login.html

解决方案:50分
以下是本人做的网站自动发贴的代码,里面同样有登陆密码的输入,不过据本人推测试,银行网站不会轻易让你模拟输入的,原因是像金融网站设计是都是考虑了安全问题,用了不能模拟登陆的控件或后台JS的

HtmlElement username = webBrowser1.Document.GetElementById("ls_username");
HtmlElement userpass = webBrowser1.Document.GetElementById("ls_password");
username.InnerText = txtName.Text.Trim();
userpass.InnerText = txtPass.Text.Trim();
webBrowser1.Document.InvokeScript("lsSubmit");
HtmlElementCollection Time = webBrowser1.Document.GetElementsByTagName("INPUT");
                    foreach (HtmlElement time in Time)
                    {
                        if (time.Name == "enabledate")
                        {
                            if (IsAllWeek)
                            {
                                time.SetAttribute("value",GeneralHelper.GetMondayDate().ToString("yyyy-MM-dd"));
                            }
                            else
                            {
                                time.SetAttribute("value", DateTime.Today.ToString("yyyy-MM-dd"));
                            }
                        }
                        if (time.Name == "expiredate")
                        {
                            if (IsAllWeek)
                            {
                                time.SetAttribute("value",GeneralHelper.GetSundayDate().ToString("yyyy-MM-dd"));
                            }
                            else
                            {
                                time.SetAttribute("value", DateTime.Today.ToString("yyyy-MM-dd"));
                            }
                        }
                        if (time.Name == "Submit")
                        {
                            time.InvokeMember("click");
                        }
                    }

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于webbrowser 设置文本内容 实现登录问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)