如何在没有ID,name,的情况下用C#获取到页面的登陆文本框?从而可以设置它的值。
正在做一个自动填写登陆密码的winform程序。但是发现只有一些网站的登陆框会有ID,可以直接用WebBroswer的做,而有一些却找不到元素的ID,,,求大神指点,,初学不懂

解决方案 »

  1.   

    html可以记录上次登录的信息到cookie里面,第一次无论如果都要输入才行。 
      

  2.   

    webform这样做是没有问题的,winform不知道用什么办法?webForm
    Response.Cookies["LoginName"].Value = loginName;
    Response.Cookies["LoginName"].Expires = DateTime.Now.AddDays(15);  ->>15过期
      

  3.   

    web就可以,winform还真没试过不知道id,name情况下怎么获取控件
      

  4.   

    建议大家用chrome来分析网页的元素代码。
    这个按钮没有ID,也没有name,所以不是特别好处理,所以我的思路是遍历所有的元素,然后根据其他项来匹配到这个按钮。如果有ID,或者name就可以用这个方法: webBrowser1.Document.GetElementById("login_submit_btn")
     
    我的代码:
     private void button1_Click(object sender, EventArgs e)
            {
                HtmlDocument document = this.webBrowser1.Document;//获取控件中的html文档,类似于网页中的document对象。
                HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("a");//根据标签<a>来遍历元素。
                foreach (HtmlElement em in elems)                   //遍历所有元素
                {
                    if (em.GetAttribute("title") == "加关注")       //根据title来匹配,因为加关注只有一个按钮
                    {
                        em.InvokeMember("click");
                    }
                }
            }