2011-09-16 18 views
0

我必須通過執行單擊事件來獲取我打開的頁面的url地址。如何在watin測試框架中抓取鏈接uri

它正常工作爲紐帶,在JavaScript中,它會打開一個彈出窗口,現在我想有這個彈出 的網址有沒有什麼辦法來獲取URL地址..

回答

0

您可以使用IE瀏覽器.InternetExplorers集合。

:寫出所有打開的IE窗口

foreach (IE currIE in IE.InternetExplorers()) 
{ 
    Console.WriteLine("URL: " + currIE.Url); 
} 

的網址,如果你對URL應該是什麼樣的想法,使用正則表達式來找到正確的IE實例是希望直截了當。如果您不知道彈出窗口的URL是什麼,您可以在打開彈出窗口之前創建一個URL列表,打開彈出窗口並將新列表與舊列表進行比較,以確定新打開的URL。

編輯另外,一旦您知道了URL,您將使用AttachTo方法來處理新找到的窗口。在這裏閱讀更多:http://watinandmore.blogspot.com/2010/01/browserattachto-and-iattachto.html

以上是NUnit和Watin 2.0。

+0

我忘記了,如果你知道某些東西來標識彈出窗口(例如:URL或標題的正則表達式),你可以在AttachTo中使用Asish顯示。如果你不知道如何識別彈出窗口,那麼收集是我知道的方式,不幸的是至少在Watin 2.0中它只能用於IE對象。 – OCary

+0

感謝我一直在尋找這個職位,因爲它的年齡,它像一個魅力工作.. –

0

如果是正常的,打開彈出式窗口,然後獲取URL,這個機制可能爲你工作:

Link ReportsLink = browserinstance.Link(Find.ById("ctl00_NavigationTab_tabLink5")); 
ReportsLink.Click(); 
Browser newbrowser = Browser.AttachTo(browserinstance.GetType(), Find.ByTitle("BusinessObjects InfoView")); 
string url = newbrowser.Url; 
newbrowser.Close(); 
+0

它的工作原理,如果我有彈出頁面的ID,但在我的情況下,沒有辦法讓我知道作爲測試我應該建立應該在所有網站(自動化測試)工作...任何如何感謝您的答覆,這是在另一種情況下有用..... –

0

可能是這樣的幫助你。

string Current_Url= HttpContext.Current.Request.Url.Host; 
+0

感謝您的答覆,任何我我如何解決了這個問題 –