當我點擊頁面上的按鈕(IE瀏覽器),打開一個新的彈出頁面。我試圖讓這個彈出窗口句柄失敗。這是我第一次嘗試:只有無法在Java中獲得新的窗口句柄與硒的webdriver在IE
String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
Set<String>s = driver.getWindowHandles();
Iterator<String> ite = s.iterator();
while (ite.hasNext()) {
String popUpHandle = ite.next();
if(!baseWin.equals(popUpHandle)) {
driver.switchTo().window(popUpHandle);
System.out.println(driver.switchTo().window(popUpHandle).getTitle());
這種嘗試版畫基地窗口的句柄,如果第二個print語句放在if()語句之外,但同時()語句中和後,如果()聲明,它只是輸出基本窗口的標題。所以這組手柄似乎只包含基本的窗口句柄。
這裏是我的第二次嘗試:
String baseWin = driver.getWindowHandle();
System.out.println(baseWin);
ArrayList<String> popUpWin = new ArrayList<String>(driver.getWindowHandles());
popUpWin.remove(baseWin);
driver.switchTo().window(popUpWin.get(0));
System.out.println(driver.switchTo().window(popUpWin.get(0)));
這種嘗試返回一個錯誤,它說,該陣列popUpWin是空的,即大小== 0。所以,在彈出的窗口的句柄不被檢索時我叫driver.getWindowHandles(),只包含基本的窗口的句柄。這是一個IE問題?有沒有解決方法?或者我忽略了我的代碼中的某些內容? (請注意,我忽略了代碼中的暫停,因此我不認爲這是問題所在。)
您正在使用什麼版本的硒?這是Windows 7 IE8 Selenium 2.12的已知問題。但是,這是從2011 lilke喜 – bpgeck