Test recorder的源码分析(1)
来源:互联网 发布:挂号抢票软件 编辑:程序博客网 时间:2024/05/29 07:55
一、概述 :
主函数 : frmMain.cs
事件的处理的函数 : WatinScript.cs
参数配置函数 : AppSettings.cs
生成脚本的接口函数 : CodeGenerator.cs
生成脚本的具体函数 : 封装在 Formatters 中
获取 Web 页面函数 : WebPage.cs
线程函数接口 : RunThreaded.cs
Excel 格式处理函数 : ExcelWriter.cs , ExcelReader.cs
列表封装函数 : ActionList.cs
具体的动作 : 封装在 actons 中各子类中,基类为 ActionsBase
二、具体事件 :
1 、 address 接受的事件 :
address 接受键盘 keyup 事件,调用方法名 comboURL_KeyUp( 在 frmMain.cs 中 ) ,调用方法 NavToUrl( string sUrl) , NavToUrl 调用 (CurWB .Navigate (sUrl )) ,下载网页到 csEXWB 控件,调用 (wscript .AddNavigation (watinie , sUrl , "" , "" )) , AddNavigation 函数调用记录操作的接口函数 AddAction
根据是否录制 (Recording, ShouldInsertActions) 标识判断是否将操作加入列表 (ActiveTest) ,
private void comboURL_KeyUp (object sender , KeyEventArgs e )
{
try
{
if (e .KeyCode == Keys .Return )
{
e .Handled = true ;
NavToUrl (comboURL .Text );
// wscript.SaveXML("e://test.xml");
}
else if (e .Control && e .KeyCode == Keys .V )
{
e .Handled = true ;
comboURL .Text = Clipboard .GetText ();
NavToUrl (Clipboard .GetText ());
cEXWB1 .Focus ();
}
else if (e .Control && e .KeyCode == Keys .C )
{
Clipboard .SetText (comboURL .Text );
}
}
catch (Exception eex )
{
MessageBox .Show (eex .Message , "comboUrl_KeyUp" );
}
}
public void NavToUrl (string sUrl )
{
if (!CheckWBPointer ())
return ;
try
{
CurWB .Navigate (sUrl );
wscript .AddNavigation (watinie , sUrl , "" , "" );
}
catch (Exception ee )
{
AllForms .FrmLog .AppendToLog ("NavToUrl/r/n" + ee );
}
}
public void AddNavigation (BrowserWindow browser , string url , string username , string password )
{
var nav = new ActionNavigate
{
ParentPage = browser .DeterminePage ();
URL = url ;
Username = username ;
Password = password;
};
if (WebPageList .FindByHash (nav .ParentPage .HashCode )==null )
{
WebPageList .Add (nav .ParentPage );
}
// if the username is not blank , replace a navigation action just prior in the list
if (username != "" && ActiveTest .Count > 0)
{
ActiveTest .RemoveAt (ActiveTest .Count - 1);
}
AddAction (nav );
}
public void AddAction (ActionBase action )
{
if (!Recording ) return ;
if (ShouldInsertActions )
{
InsertAction (InsertPosition , action );
InsertPosition ++;
return ;
}
ActiveTest .Add (action );
ActiveTest .UnsavedScript = true ;
action .ParentTest = ActiveTest ;
if (MainBrowser .OnGridAdd != null ) MainBrowser .OnGridAdd (action );
}
2 、 Search 接受的事件
search 接受键盘 keyup 事件,调用方法名 comboSearch_KeyUp( object sender , KeyEventArgs e) , 格式化字符串 str ,调用方法 NavToUrl( string str) ,后面的流程同 address 接受的事件
private void comboSearch_KeyUp (object sender , KeyEventArgs e )
{
if (e .KeyCode == Keys .Enter )
{
e .Handled = true ;
if (comboSearch .Text .Length == 0)
return ;
string str = comboSearch .Text .Replace (" " , "+" );
str = string .Format (Properties .Resources .SearchURL , str );
NavToUrl (str );
}
}
3 、 cEXWB 接受的事件
CommandStateChange 调用方法 cEXWB1_CommandStateChange
处理控件中的 CommandStateChange 事件
DocumentComplete 调用方法 cEXWB1_DocumentComplete
处理控件中的 DocumentComplete 事件
DownloadBegin 调用方法 cEXWB1_DownloadBegin
处理控件中的 DownloadBegin 事件
DownloadComplete 调用方法 cEXWB1_DownloadComplete
处理控件中的 DownloadComplete 事件
FileDownload 调用方法 cEXWB1_FileDownload
处理控件中的 FileDownload 事件
NewWindow2 调用方法 cEXWB1_NewWindow2
处理控件中的 NewWindow2 事件
NewWindow3 调用方法 cEXWB1_NewWindow3
处理控件中的 NewWindow3 事件
ProgressChange 调用方法 cEXWB1_ProgressChange
处理控件中的 ProgressChange 事件
RefreshBegin 调用方法 cEXWB1_RefreshBegin
处理控件中的 RefreshBegin 事件
RefreshEnd 调用方法 cEXWB1_RefreshEnd
处理控件中的 RefreshEnd 事件
ScriptError 调用方法 cEXWB1_ScriptError
处理控件中的 ScriptError 事件
SetSecureLockIcon 调用方法 cEXWB1_SetSecureLockIcon
处理控件中的 SetSecureLockIcon 事件
StatusTextChange 调用方法 cEXWB1_StatusTextChange
处理控件中的 StatusTextChange 事件
TitleChange 调用方法 cEXWB1_TitleChange
处理控件中的 TitleChange 事件
WBAuthenticate 调用方法 cEXWB1_WBAuthenticate
处理控件中的 WBAuthenticate 事件
WBDocHostShowUIShowMessage
调用方法 cEXWB1_WBDocHostShowUIShowMessage
处理控件中的 WBDocHostShowUIShowMessage 事件
WBDragDrop 调用方法 cEXWB1_WBDragDrop
处理控件中,拖动事件
- Test recorder的源码分析(1)
- Test recorder的源码分析(2)
- Test recorder的源码分析(3)
- Test recorder的源码分析(4)
- Vitamio Recorder 2.0 源码分析
- VS不能启动web test recorder的解决方法
- FairStars Recorder 分析
- 使用Espresso Test Recorder编写Android测试
- Android Studio 3.0-Espresso Test Recorder
- Mesos源码分析(9): Test Framework的启动
- Mesos源码分析(15): Test Executor的运行
- FAST(Features fromaccelerated segment test)源码分析
- Recorder
- Recorder
- Android:照相机(camera)与视频录制(Recorder)的实现
- levelDB源码笔记(1)-TEST
- bvlc_reference_caffenet的test过程分析1
- (4.5.5.8)Android Studio 2.2 Espresso Test Recorder-----解放双手,通过录制交互过程实现测试
- IE9与Firefox4试用体验
- 获取键盘上各键的16进制码
- android简单的文件检索
- C++ 工作中碰到的一些问题,以及解决的办法
- 为什么不能使用串口发送中断?
- Test recorder的源码分析(1)
- 得到项目的绝对路径
- 用CentOS的数据包来升级RedHat Linux
- [ACM算法展示] 电子老鼠闯迷宫
- [ACM技巧] ACM比赛技巧
- 驱动模块Makefile解析
- 《制造开源软件》发布了
- [Java] BufferedReader(new FileReader( )) 从文件输入数据
- 银行业务调度系统视频总结