ie.WaitForComplete();
MainFrame. = ie.Frame(Find.ByName("MainFrame_00001"));
MenuFrame. = ie.Frame(Find.ById("leftMenu"));//把系統里的Frame先保存下來。
}
2、對于alert 、confirm 等javascript彈出的窗口的捕獲。
背景:一個系統經常會使用以上這些javascript來彈出一些提示信息,如果捕獲這些窗口,并模擬用戶點擊這些窗口上的OK或Cancel按鈕?
方案:其實WatiN在默認情況下,都會自動地去點擊這些彈出式窗口上的Cancel按鈕的,但如果用戶要明確點擊哪些事件的話可以對IE對象增加一個“查看器”()
protected void f()
{
WatiN.Core.DialogHandlers.ConfirmDialogHandler dh = new WatiN.Core.DialogHandlers.ConfirmDialogHandler();
ie.AddDialogHandler(dh);
doc.Button(Find.ByName("yzp_dic_btn_cls")).ClickNoWait();//把原來的Click改成這個方法。
dh.WaitUntilExists(3);//等待彈出窗口的出來。最多等三秒。
dh.OKButton.Click();//點擊這個窗口的OK按鈕
ie.RemoveDialogHandler(dh);
doc.Button(Find.ByName("btn_close")).Click();
}
3、關于用JS彈出的Modal窗口(模式窗口)的處理。
背景:有些地方需要彈出模式窗口來處理數據。
方解:當點擊了彈出模式窗口的按鈕或連接后馬上用IE對像的HtmlDialogs屬生來獲取模式窗口。
protected void f()
{
//假設下面這行代碼會彈出一個模式窗口把原來的Click改成這個方法。
//記住這里要用ClickNoWait而不能用Click,否則在模式窗口關閉之前代碼不會繼續執行。
ie.Button(Find.ByName("yzp_dic_btn_cls")).ClickNoWait();
ie.HtmlDialogs[ie.HtmlDialogs.Length - 1].TextField(Find.ByName("Q")).Value = "Hello";
ie.HtmlDialogs[ie.HtmlDialogs.Length - 1].Button(Find.ByName("btn_query")).Click();
WatiN 官方網址:http://watin.sourceforge.net/可以在上面下載組件。
文章來源于領測軟件測試網 http://www.k11sc111.com/