2013-07-18 83 views
1

場景:無法切換而不webdriver的關閉窗口彈出到警報

  1. 在文本框
  2. 並按Tab鍵輸入關鍵字(位置),或者點擊下一個元件上
  3. 一個窗口彈出窗口
  4. 將上市
  5. 單擊所需的記錄
  6. 彈出窗口的標準匹配的位置列表將自動關閉
  7. 將顯示警報
  8. 已點擊警報的確定按鈕。
  9. 切換到主窗口,檢查位置信息

問題: - 我發現許多解決方案中的網站,但都是關於窗口彈出執行操作並關閉彈出窗口,然後切換到警告或主瀏覽器

但我的應用程序在選擇後自動關閉彈出窗口,因此我無法使用driver.close()或driver.switchto.defaultContent()。

如果我不關閉驅動程序(對於彈出窗口)我無法識別彈出後顯示的下一個警報。

如果我直接切換到mainwindhandle,警報解除正在發生,而不是接受。

請人誰知道如何從窗口彈出式切換,而需要彈出關閉幫助提醒...

感謝....

+0

哇。您可以通過構建可重複的測試案例來幫助我們,否則我會在週末期間嘗試自己創建一個。另外,可以肯定的是,您能否向我們展示您的代碼,以便我們確保沒有愚蠢的錯字/被遺忘的錯誤? –

+0

沒有Slanec im確定沒有手動錯誤boz相同的代碼在IE瀏覽器和Chrome瀏覽器上工作正常,但沒有在Firefox上(17&webdriver 2.25)..父窗口有框架會產生問題 –

+0

啊哈!這實際上就像一個WebDriver錯誤。使用當前的Selenium 2.33.0重試它,如果仍然失敗,請[提交錯誤](http://code.google.com/p/selenium/issues/list)。不幸的是,這基本上是我們所能做的一切。 –

回答

0

This必須對你有所幫助。從你的問題來看,即使彈出窗口自動關閉,你也必須能夠通過切換回父窗口元素來訪問它。無需一直使用driver.close()。下面是代碼,

// do something with the pop up and it closes automatically here. 
driver.switchTo().defaultContent(); 
driver.switchTo().frame("your parent window mainframe")); 
// try to access your parent window element here 
+0

感謝Karthikeyan的鏈接,但代碼相同,如果您觀察到3)彈出操作後,將驅動程序切換回父窗口, browser.close(); //關閉彈出窗口...我不想要這個聲明boz我的應用程序已經關閉了彈出窗口,如果我使用這個異常顯示...我想取消這個聲明..任何工作都爲此讚賞..迫在眉睫爲解決方案,因爲3天... –

+0

然後使用'windowIterator = browser.getWindowHandles();'獲取當前活動的瀏覽器。 – Karthikeyan

+0

Karthik,彈出窗口自動關閉後,只有一個窗口句柄,當我使用這個切換,警報關閉,但作爲解僱..我想作爲接受繼續..一些我即將迷失... –

0
  1. 如果警報解僱正在發生的事情,當你試圖去接受它,你爲什麼不使用alert.dismiss(),它可能會接受警報在你的情況下。

  2. 當您切換到彈出窗口時,驅動程序焦點位於彈出窗口中。您可能想要做的是,點擊所需記錄後,切換到主窗口,然後接受警報。

+0

,彈出窗口自動關閉並提醒顯示。問題1:除非我使用driver.close,webdriver無法識別警報...我不能使用這個boz應用程序自動關閉Problem2:當我切換到父窗口的句柄,改變關閉作爲解僱,所以無論如何im未達到我的預期條件是alert.accept ...相同的腳本工作正常在IE瀏覽器和鉻..問題在Firefox瀏覽器..請任何一個有解決方法我知道.... –