2014-04-23 39 views
0

我們使用Watin來自動化網站測試並嘗試執行以下操作:單擊一個按鈕以彈出窗口,單擊彈出窗口上的Generate按鈕生成文件。我們無法使用watin獲得彈出窗口。錯誤:「無法找到匹配約束的IE窗口:屬性'href'與'重新生成'匹配。'30秒後搜索過期。」請給出一個錯誤的提示。您的幫助將不勝感激。Watin AttachTo彈出窗口

的代碼片段如下:

ieInstance.Button(Find.ByName(Button1)).Click();    
    ieInstance.WaitForComplete(); 
    var popupUrl = new Regex("Regenerate"); 
    //part of popup URL: "RegenerateDialog.aspx?Type=" 
    var popupBrowser = Browser.AttachTo<IE>(Find.ByUrl(popupUrl)); 
    if (popupBrowser != null) 
     popupBrowser.Button(Find.ById("RegenerateDialogBtn")).Click(); 

彈出窗口代碼如下:

function ShowEXPFileWindow(Type) 
{ 
//do some stuff 
var oWnd = window.radopen("RegenerateDialog.aspx?Type=" + Type,        "RegenerateDialog"); 
      oWnd.set_title(""); 
      oWnd.center(); 

} 

HTML彈出彈出窗口:

<td><input type="submit" name="ctl00$Body$ConfigRadGrid" value="Regenerate" onclick="ShowEXPFileWindow('OD'); return false;" class="submit" /></td> 

回答

0

而不是

ieInstance.Button(Find.ByName(Button1)).Click(), use 
ieInstance.Button(Find.ByName(Button1)).ClickNoWait() 

並檢查。是否可以發佈彈出窗口的圖像?或者當你點擊按鈕時,默認選擇哪個控件?如果是'重新生成',則嘗試按'Enter'鍵並檢查。

彈出窗口是另一個IE窗口嗎?如果是,則附加使用

Find.ByUrl(url => url.Contains(expectedURL))