首先是用c#中的WebBrowser控件打开登录网页,很简单,拖拽WebBrowser到Form上,然后给它的Url属性赋值。WebBrowser就会自动navigate to 这个网页。
WebBrowser1.Url= new Uri("小米登录地址")
HtmlElement usrname=WebBrowser1.Document.GetElementById("ID值"), 这条语句可获得用户名输入框元素。ID值可以通过查看HTML源文件得到。还有很多方法可以找到该元素,看msdn就可以了。
usrname.Focus(); 将输入焦点定位到用户名输入框上。
下面就是用System.Windows.Forms.SendKeys.Send()方法模拟键盘操作输入用户密码并回车:
System.Windows.Forms.SendKeys.Send("UserName");
System.Windows.Forms.SendKeys.Send("{tab}");          //输入tab键,输入焦点定位到了密码输入框
System.Windows.Forms.SendKeys.Send("password");   //模拟键盘输入密码
System.Windows.Forms.SendKeys.Send("{enter}");有个难点就是,Webbrowser导航到一个URL的时候,需要时间,如果网页复杂,时间会比较长。如果将Url属性赋值之后,立刻就去查找用户名输入框元素的话,会找不到。所以我们的代码要在加载完成后执行。微软的帮助上说DocumentCompleted事件发生在文件加载完成时,我想把代码放到这个事件里。实际上并非完全如帮助描述,在加载一个Url到完成的时候,DocumentCompleted事件也会发生很多次。一般最后一次才是真正加载完成。解决办法一是结合ReadyState判断,当ReadyState也是completed的时候作为加载完成标志。另外一种是启用Flag,代码中依据判断flag值执行不同的功能。每打开一个新的URL之后,每次DocumentCompleted事件都查找,直到找到了我们想要的元素,执行键盘输入模拟代码,然后修改flag标志。这种方法当打开的Url多的时候容易弄乱,建议画个状态图。
例子:
Int flag=0private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{if (flag==0){HtmlElement usrname=WebBrowser1.Document.GetElementById("ID值"),if (usrname!=null){       usrname.Focus(); 将输入焦点定位到用户名输入框上。System.Windows.Forms.SendKeys.Send("UserName");System.Windows.Forms.SendKeys.Send("{tab}");          //输入tab键,输入焦点定位到了密码输入框       System.Windows.Forms.SendKeys.Send("password");   //模拟键盘输入密码                    System.Windows.Forms.SendKeys.Send("{enter}");flag=1;}}
}

转载于:https://www.cnblogs.com/vjiedao/p/3557588.html

用c#中的WebBrowser抢小米F码,抢小米手机以及自动测试实现原理相关推荐

  1. F码一键生成,买小米手机再也不用苦等好几天了(红米,米3专用),做个任务轻松获

    让小米手机认证用户通过这个身份到小米公司网站申请任务,成功申请任务之后,在操作 完成任务之后就会得到一个通知了,是一个短信的方式得来的,那么这个短信的主要内容就是一 枚小米F码了. 一般情况下小米公司 ...

  2. php验证是否是微信支付,利用thinkphp判断微信中的支付还是微信扫码支付还是手...

    进行判断,根不同的客户端,显示不同的内容,如果不是手机,则只显示扫码微信支付,如果是微信公众号中,则只显示公众号支付 阿里西西web开发网为大家整理了这篇利用thinkphp判断微信中的支付还是微信扫 ...

  3. java jeditorpane 自动换行_JDIC 中利用WebBrowser内置浏览器到java application中 | 学步园...

    JDIC简介: JDesktop Integration Components (JDIC),是一个开源的项目,目的是构建消除本机应用程序和 Java 等价物之间差距的组件.项目组长是个中国人.该项目 ...

  4. 关于小米饥饿营销、缺货、F码、黄牛这些吸引眼球字眼背后的逻辑和自己多年的理解

    首先,今天看到个新闻,小米的产品总监在和用户群里聊天的时候,聊到了一些关于小米9缺货的"理解", 具体内容请看链接:小米产品总监自爆小米9缺货原因理解和小米的营销模式 看完之后,自 ...

  5. C#中的WebBrowser控件的使用

    关键字:C# WebBrowser 作者:txw1958 原文:http://www.cnblogs.com/txw1958/archive/2012/09/24/CSharp-WebBrowser. ...

  6. 『飞秋』在ASP.NET服务器端过程中使用WebBrowser的注意事项

    昨天刚刚完成了一个从网页上提取内容的ASP.NET程序.因为目标网页内容比较复杂,所以采用了WebBrowser来代替WebClient. 但是,在本地写好的程序,放到了服务器上就停止工作了,也找不到 ...

  7. django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066

    django 中的聚合和分组 F查询 Q查询 事务cookies和sessions 066 1 聚合和分组 聚合:对一些数据进行整理分析 进而得到结果(mysql中的聚合函数) 1aggregate( ...

  8. 证明ker f是H中的闭线性子空间(f是连续有界线性泛函)

    证明ker f是H中的闭线性子空间(f是连续有界线性泛函) 题目: 设f∈H∗f \in H^{*}f∈H∗,证明:kerfker \ fker f是HHH中的闭线性子空间. 证明: 因为H∗H^{* ...

  9. C#WEB项目中使用WebBrowser组件

    1. 在web项目中引用system.windows库: 再在代码中引用:using system.windows.forms 2. 这样在程序中可以使用webbrowser组件了: WebBrows ...

  10. 用python抢火车票_Python3实现抢火车票功能(中)

    导语 在"python抢火车票(上)"一文中我们完成了项目内容1和项目内容2,即利用python实现火车/高铁票查询功能以及利用python实现抢火车/高铁票功能,对项目内容1和项 ...

最新文章

  1. [转]VC++中对文件的写入和读取
  2. 使用Asynchronous RFC call 拆分time consuming task
  3. PHP 怎样理解go指针,关于Go指针的介绍
  4. java响应鼠标滚轮事件_javascript滚动条响应鼠标滑轮的实现上下滚动事件
  5. Codeforces Round #356 (Div. 1) D. Bear and Chase 暴力
  6. ArcGIS Engine开发前基础知识(3)
  7. IDEA 如何根据代码自动生成类图
  8. 【Windows】操作系统原理
  9. 黑莓刷机及情景设置来电和短信等没有声音的解决办法
  10. 记一次hive 报错NoViableAltException(-1@[215:51: ( KW_AS )?])
  11. linux cpu飙高原因排查(有手就行)
  12. nacos服务注册不上
  13. Glide-通过Modules定制Glide
  14. 2023十大科技趋势
  15. 云浮高考成绩查询2021,云浮市2021年高考顺利落幕!
  16. 锁定计算机小键盘,笔记本电脑数字键盘已锁定!如何打开: 按什么键
  17. 充电池中热敏电阻作用
  18. apt-get 报错解决
  19. Android APT(编译时代码生成)最佳实践
  20. 树莓派3 搭建NAS

热门文章

  1. 微信小程序云开发教程-WXSS入门-常用样式
  2. java list map 效率_遍历Map和List的几种方法和性能比较
  3. Tensorflow Day1
  4. Logstash5.X 日志搜集处理框架 安装配置
  5. apache 2.4.4 自动分割日志,按年月日生成
  6. LayaAir 定时器 Timer
  7. sql 截取字符串:
  8. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-3.微信Oauth2.0交互流程讲解...
  9. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_4-2.微服务下登录检验解决方案 JWT讲解...
  10. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_7_Stream流中的常用方法_limit...