私のコードでは、同じページにポップアップとして開くリンクがあるセレンを使用するページに到達しましたが、そのリンクは を使用しているため、新しいウィンドウで開く新しいページのようです。
そのリンクをクリックしてページを開くことはできますが、driver.getWindowHandles() を実行すると、サイズが 2 ではなく 1 として返されるため、新しいウィンドウに切り替えることができません。
以下は私が使用しているコードです:
String parent = driver.getWindowHandle();
driver.findElement(By.xpath("//a[@id='abc']")).click();
// after clicking on the link
try{
Thread.sleep(1000);
Set<String> availableWindows = driver.getWindowHandles();//this set size is
// returned as 1 and not 2
String newWindow = null;
for (String window : availableWindows) {
if (!parent.equals(window)) {
newWindow = window;
}
}
assertNotNull(newWindow);
// switch to new window
driver.switchTo().window(newWindow);
// do assert the elements in the new window
// and then close the new window
driver.close();
// switch to parent
driver.switchTo().window(parent);
// close main window
driver.close();}
catch(Exception e){
ポップアップウィンドウはマスターウィンドウ自体の一部であるため、つまり、 getWindowHandle(); を実行しても正しいサイズを取得できないのはなぜですか?
しかし、私の要件は、ポップアップ ページのみを保存することです。現在、マスターページドライバーが呼び出されるたびに、保存コードはポップアップコンテンツとともにマスターページの詳細を保存しています。
ポップアップ ページのドライバーのみを取得するためにできる回避策はありますか?
保存コードは一般的なものであり、このリファレンスでは重要ではありません。私が欲しいのは、ポップアップページのドライバーのみを取得することだけです