2012-05-10 88 views
1

我寫過一些使用WebDriver的腳本,它們能夠完美地運行firefox和Chrome。但用IE運行這些腳本會導致失敗。我在窗口處理機制期間遇到了一個問題。以下是它的代碼。在IE上運行WebDriver測試失敗隨機

public void switchingWindow() { 
    HashSet<String> handles =(HashSet<String>) driver.getWindowHandles();; 
    Iterator<String> whandles = handles.iterator(); 
    int h = 0; 
    while(handles.size()<2) { 
     handles = (HashSet<String>) driver.getWindowHandles(); 
     whandles = handles.iterator(); 
     System.out.println("No Of Windows : "+handles.size()); 
     h++; 
     sleep(500); 
     if (h >= 60) 
      Assert.fail("Tracker PopUp not loaded successfully"); 
    } 
    parentWindow = whandles.next(); 
    popUpWindow = whandles.next(); 
    driver.switchTo().window(popUpWindow); 
    System.out.println("PopUp Window is handled"); 
} 
+0

什麼類型的故障? –

+0

會話突然過期。大多數情況下,我正面臨Window Handles的問題。劇本分解不均。如果一次傳遞測試用例,那麼在下次運行時不會傳遞測試用例(所有的測試用例都是相互獨立的) –

回答

0

根據我的經驗,僅在IE中出現的隨機失敗通常是由於元素(在本例中爲窗口處理程序)尚未完全存在。 IE瀏覽器似乎以不同的順序/方式(我不知道該如何)加載元素,因此我經常發現我必須對其他瀏覽器沒有的IE應用waitUntil。然而,這是窗口處理程序,我想這不是這種情況,但如果是我也不會感到驚訝:P

0

啓動Google Chrome實例,並將IE標籤擴展配置爲默認打開。它模仿IE,但不會像微軟的產品一樣崩潰。

相關問題