我有一個Web應用程序,當我點擊保存按鈕時啓動保存窗口(這是模式)。這個窗口需要10秒才能完全加載(我可以等待這一點)。 在完成保存之前,我需要在此窗口中執行一些操作。我遇到的問題是 - 模式窗口啓動的那一刻,我無法使用驅動程序.SwitchTo()或driver.Manage()。GetAllWindowHandles()等。我用下面的方法證實了這一點代碼行。使用Selenium Webdriver將控制切換到模式窗口(不是警報)
driver.findElement(By.xpath("//*[@id='toolbar']/a[1]")).click();
// After the above line is executed, the Popup gets launched
Set<String> sWindowHandles = driver.getWindowHandles();
System.out.println("Popup");
System.out.println(driver.getWindowHandles().size()); // This always prints "1"
直到我明確關閉彈出窗口時,以上三行完全不會被執行(至少不會長時間執行)。
當我無法找到窗口的處理程序時,如何處理保存窗口(模式)中存在的某些控件?
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
不起作用,打開後立即因爲模態窗口(有意義的它僅推出後GetWindowHandles),隨後的線根本不能執行。 我陷入僵局。請幫助我。
您可能會看到這個錯誤 - 網頁上的模態對話框通常不是單獨的窗口;它們大多是作爲頁面上的div疊加實現的。請分享您的頁面的HTML,以及模態對話框的HTML。 – Faiz
如果使用'showModalDialog'啓動對話框,則應該查看[問題284](https://code.google.com/p/selenium/issues/detail?id=284)。從底層開始閱讀可能的解決方案。 – Faiz