业务需求:
一个测试工具系统,在原有对静态HTML测试的基础上增加对动态HTML进行验证,验证的是HTML标签的完整性。
测试对象:
一套内部办公系统,大量使用了AngularJs,除去登录地址外,页面中几乎所有的功能按钮,菜单,链接均是由AngularJs完成。
使用技术:
WPF+WebBrowser组件+多线程
经验总结:
- 开发中遇到问题绝大部分都能在google中搜索到解决方案,访问google方法一是翻墙,二是通过http://www.baigoogledu.com/
- http://stackoverflow.com/是个好地方,Google上搜索到的资料都是出自此处。
- 在开发中主要是围绕WebBrowser组件进行,多线程最后使用了System.Window.Forms.Timer实现,而其他方式遇到了跨线程访问WebBrowser组件的问题,尤其是工具自动点击A Tag(调用AngularJs代码)时,会停止响应(卡死,或者说一直block)
- 大部分跨线程访问UI组件的问题,都可以使用Control.Invoke(new Action(()=>{ 业务代码}));这样方式解决。
- WebBrowser组件只有在调用Navigate(url)之后,才会触发DocumentCompleted事件,多线程的业务调用中,也