2015-10-20 71 views
-1

我正在使用Selenium進行舊網絡應用程序自動化。 單擊按鈕時,應用程序將啓動一個windows showModelDialog窗口。 裏面有很多元素(按鈕,文本框)需要被訪問。 (這些只在IE中可見,我使用IE驅動程序自動運行)。 我的問題:如何訪問windows中的元素showModalDialog

  1. 我如何進入這種模式對話框(如切換窗口的東西,或者使用窗口句柄??切換)
  2. 我如何訪問模式對話框中的元素,並繼續自動化。

任何幫助表示讚賞。謝謝。

想這一點,但invain :(

這裏是代碼片段:

Set<String> handles = driver.getWindowHandles();   
    for (String handle : handles) { 
     System.out.println("handle = "+handle); 
     if (!mainHandle.equals(handle)) { 
      System.out.println("handle child = " + handle); 
      WebDriver d = driver.switchTo().window(handle); 
      System.out.println("swith title =" + d.getTitle()); 
      d.close(); //d.quit(); //both not working 
     } 
    } 

這裏是輸出:

main handle = 87bc0402-895d-4f9a-84c4-8324e023c05c 
main title= ATCOMRES - Unit Promotion Rates 
handle = 87bc0402-895d-4f9a-84c4-8324e023c05c 
handle = 347727e2-50d7-4ae9-a0f3-80eafeff844f 
handle child = 347727e2-50d7-4ae9-a0f3-80eafeff844f 
swith title =Inventory 

回答

-1

這個問題的答案了很多SO硒提供使用手柄在窗口,框架和警報之間切換的功能。 搜索這兩個功能可以幫助您順利進行。 driver.getWindowHandles()和 driver.switchTo()。window()

+0

謝謝@ user1155838,我們已經試過了這些。 我編輯了問題,包含代碼和相應的輸出。 我們正在努力完成這一步。 例如,我們無法關閉窗口(代碼中的d.close()失敗) 此外,此對話框包含豐富的元素以及如何訪問它們(例如,文本框,按鈕,複選框等) – vikas

+0

driver.close()是否在所有瀏覽器或任何特定的瀏覽器中失敗?獲取對話框中的元素的過程與普通頁面的過程相同。您將不得不分享html示例代碼,以供我進一步評論。 – saju