0

私のコードでは、同じページにポップアップとして開くリンクがあるセレンを使用するページに到達しましたが、そのリンクは を使用しているため、新しいウィンドウで開く新しいページのようです。

そのリンクをクリックしてページを開くことはできますが、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(); を実行しても正しいサイズを取得できないのはなぜですか?

しかし、私の要件は、ポップアップ ページのみを保存することです。現在、マスターページドライバーが呼び出されるたびに、保存コードはポップアップコンテンツとともにマスターページの詳細を保存しています。

ポップアップ ページのドライバーのみを取得するためにできる回避策はありますか?

保存コードは一般的なものであり、このリファレンスでは重要ではありません。私が欲しいのは、ポップアップページのドライバーのみを取得することだけです

4

1 に答える 1