2011-10-05 71 views
0

我對C#編程還很陌生,並且能夠讓WebDriver正常工作以完成我需要在我們的網站上完成的大部分工作,除了當新窗口啓動時。看起來在Java中有很多選項可以處理這個問題,但是我似乎無法像C#那樣收集窗口句柄,然後切換到新生成的窗口。我面對的部分問題是,由於需要幾秒鐘才能填充新窗口,所以我試圖等待以捕獲新窗口。當我最初這樣做時,我嘗試使用如何讓C#WebDriver Windows在IE和新窗口中使用SwitchTo

wait.Until(WebDriver => driver.Title.Equals("_blank")); 
driver.SwitchTo().Window("_blank") 

確保窗口在嘗試切換到它之前產生。

然後閱讀更多關於這個我發現我不得不捕捉windowHandles之前進行切換,因爲我仍然需要等待窗口產卵和填充我想我需要一些時間來檢查新的句柄並切換到它,那時我不知道該怎麼做。

我使用的是Selenium2的.Net WebDriver和SpecFlow,因此所有的測試都在C#中,我覺得在做C#時比Java更舒服,儘管我沒有用C#做過多的高級工作。如果有人有一些提示讓我開始如何解決這個問題,我會很感激。

回答

1

WebDriver.Support.dll中的.NET支持類有一個PopupWindowFinder類,專門用於幫助完全控制這種情況。它目前被列爲實驗,但至少可以檢查that class的代碼以瞭解其工作原理。如果它不能完全滿足你的需求,它可能會給你一些關於如何編碼自己的見解。

+0

這很好!非常感謝你。 – MichaelF

相關問題