コンソールが Apache Wicket 6 で開発された Web アプリケーション上で Selenium 2.41 との統合テストを実行しており、Selenium Firefox Web ドライバーのインスタンスを作成しました。
protected WebDriver seleniumDriver = new FirefoxDriver();
有名な Wicket ModalWindow を呼び出すページがあります。特に、ボタンをクリックすると、何かを編集または作成するための odal ウィンドウ ページが表示されます。モーダル ウィンドウには、2 つの入力テキスト フィールドと [保存] ボタンがあります。Selenium では、これらのテキスト フィールドに何かを入力しようとしていますが、モーダル ウィンドウにしかアクセスできません。
seleniumDriver.findElement(By.xpath("//a[contains(text(),'Create new item')]")).click();
次に、Selenium Webドライバーコントロールがメインページにスタックするため、(いくつかのインターネットの例に従って)開いているモーダルウィンドウでコントロールを「切り替える」ためにこのコードを書きました:
//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();
しかし、それを機能させる方法はありません。実際、ウィンドウ ハンドルのリストには、2 つの要素 (メイン ページとモーダル ページ) ではなく、メイン ページの 1 つの要素しかなく、モーダル ウィンドウでテキスト フィールドを見つける方法はありません。ボタンを押します。私のコードの残りの部分は機能していることを指摘します。私はモーダル ウィンドウでのみ作業することはできません。私の質問は次のとおりです。Selenium 2.41でAPACHE WICKET 6モーダルウィンドウを管理するにはどうすればよいですか? コントロールをメイン ページから APACHE WICKET 6 モーダル ウィンドウに切り替える方法はありますか?