2012-01-12 11 views
3

我有一個應用程序,用戶可能會在2個可能的瀏覽器窗口/選項卡。獲得一個窗口的標題,而不會集中在水豚/硒

如果用戶在窗口2中並且窗口1中發生事件,我使用JQuery Title Alert(https://github.com/heyman/jquery-titlealert)更改標題欄的文本,作爲通知他們在窗口1中正在發生什麼事情。標題文本更改將閃爍,直到窗口1爲焦點。

這一切工作正常。但是,我想要使用水豚和硒進行集成測試,並且我遇到了一個有趣的問題。

 page.driver.browser.switch_to.window(page.driver.browser.window_handles.last) 

我希望能夠得到聚焦窗口的文本,以測試它的文本發生了變化:雖然我可以在窗口之間方便地使用類似切換。有誰知道如何:

  1. 獲取所有窗口的標題?
  2. 檢查窗口的屬性而不切換到它/關注它?
  3. 任何其他方式,我可以解決這個問題?

在此先感謝您的幫助!

回答

2

您可以使用WebDriverBackedSelenium其中有GetAllWindowTitles()。它應該在Ruby中使用最新版本2.19。下面的例子在C#中起作用。

IWebDriver driver = new FirefoxDriver(); 
ISelenium browser = new WebDriverBackedSelenium(driver, driver.Url); 
browser.Start(); 

// open a test page and some popup windows 
browser.Open(@"Test.html"); // open the main page which has title 'My Main Window' 
browser.Click("btnPop1"); // open a popup window with title 'My Popup 1' 
browser.Click("btnPop2"); // open a popup window with title 'My Popup 2' 

string[] titles = browser.GetAllWindowTitles(); 
foreach (string title in titles) 
{ 
    Console.WriteLine(title); 
} 
browser.Close(); 
Console.ReadLine(); 

的輸出爲預期:

My Main Window 
My Popup 1 
My Popup 2 
+0

感謝您的回答!然而,我似乎無法得到WebDriverBackedSelenium的處理或者配置Selenium在使用Capybara的Rails項目中使用它,即使在升級到2.19之後。我還沒有看到關於它的任何文檔或Rails社區文檔,但我會繼續尋找... – 2012-02-13 08:32:22

+0

我不太瞭解Rails或水豚,但我認爲它的工作原理是[Selenium版本筆記宣佈'WebdriverBackedSelenium'現在可以用於除java以外的支持語言](http://seleniumhq.wordpress.com/2012/02/08/announcing-selenium-2-19-the-prancing-unicorn-release/) 。 – shamp00 2012-02-13 08:41:28

+0

您肯定回答了我的問題,現在由我來找出RoR實施細節。謝了哥們 :) – 2012-02-13 09:19:07