Я запускаю интеграционные тесты с Selenium 2.41 через веб-приложение, консоль которого разработана с помощью Apache Wicket 6, и я создал экземпляр веб-драйвера Selenium Firefox:
protected WebDriver seleniumDriver = new FirefoxDriver();
У меня есть страница, вызывающая знаменитый Wicket ModalWindow, в частности, если щелкнуть кнопку, она показывает страницу окна odal для редактирования или создания чего-либо. Модальное окно имеет два текстовых поля ввода и кнопку Сохранить. С Selenium я пытаюсь что-то ввести в эти текстовые поля, но я могу получить доступ только к модальному окну, поэтому:
seleniumDriver.findElement(By.xpath("//a[contains(text(),'Create new item')]")).click();
затем элемент управления веб-драйвером selenium застревает на главной странице, поэтому (следуя некоторым примерам в Интернете) я написал этот код, чтобы «переключить» элемент управления в открытом модальном окне:
//Store the current window handle
String parentWindow = seleniumDriver.getWindowHandle();
// switch to configuration modal window
for (String winHandle : seleniumDriver.getWindowHandles()) {
seleniumDriver.switchTo().window(winHandle);
}
WebDriverWait webDriverWaitHalfMinModal = new WebDriverWait(seleniumDriver, 10L);
webDriverWaitHalfMinModal.until(ExpectedConditions.presenceOfElementLocated(By.
xpath("//input[@name='key:textField']")));
// do something in modal window
//Close the new window, if that window no more required
seleniumDriver.close();
//Switch back to original browser (parent window)
seleniumDriver.switchTo().window(parentWindow);
Я также пробовал:
seleniumDriver.switchTo().activeElement();
и
seleniumDriver.switchTo().alert();
Но нет никакого способа заставить его работать, ведь список дескрипторов окна имеет только 1 элемент, главную страницу, а не два элемента (главную и модальную страницу) и нет возможности найти текстовое поле в модальном окне, открытом с помощью нажатие кнопки. Я указываю, что остальной мой код работает, я не могу работать только с модальными окнами. Итак, мой вопрос: как я могу управлять модальными окнами APACHE WICKET 6 с помощью Selenium 2.41? Есть ли способ переключить управление с главной страницы на модальное окно APACHE WICKET 6?