Селен: нет такого окна: целевое окно уже закрыто - PullRequest
0 голосов
/ 16 января 2019

Я хочу, чтобы мой скрипт переключал окна. Он должен переключиться на второе окно и снова переключиться на первое, чтобы я мог продолжить работу в текущем окне. Я не могу найти, почему первое окно уже закрыто.

   public void doDetails(){
        logger.info("########## Started ##########");

        // Store the current window handle
        String winHandleBefore = driver.getWindowHandle();
        getAllComponents();
        mouseOnArrow();
        WaitUtils.waitUntilVisiblityOfElement(driver,link,WaitUtils.FIVE_SECONDS);

        //Click operation opens another window/tab
        link.click();
        WaitUtils.waitForSeconds(WaitUtils.FIVE_SECONDS);

        //Switching to new window
        for(String winHandle : driver.getWindowHandles()){
            driver.switchTo().window(winHandle);
        }
        addFilter();
        WaitUtils.waitForSeconds(WaitUtils.TEN_SECONDS);
        components.clickCustomize();
        WaitUtils.waitUntilVisiblityOfElement(driver,components.allCheckboxes,WaitUtils.TWENTY_SECONDS);
        components.clickAllChkBoxes();
        WaitUtils.waitForSeconds(WaitUtils.ONE_SECOND);
        clickAllDetail();
        WaitUtils.waitForSeconds(WaitUtils.ONE_SECOND);
        components.clickApply();
        WaitUtils.waitUntilInvisibilityOf(driver,components.customizeHeader,WaitUtils.TWENTY_SECONDS);
        sortByAllowedAmount();
        WaitUtils.waitUntilInvisibilityOf(driver,components.loading,WaitUtils.TWENTY_SECONDS);
        clickExcel();
        WaitUtils.waitForSeconds(WaitUtils.TEN_SECONDS);

        //Closing current window
        driver.close();

        //Switching back to first window
        driver.switchTo().window(winHandleBefore);

    }

1 Ответ

0 голосов
/ 16 января 2019

В вашем коде вы должны добавить чек при переходе в новое окно. В вашем коде вы находитесь в текущем окне.

   //Switching to new window
    for(String winHandle : driver.getWindowHandles()){
      if(!(winHandle.equals(winHandleBefore)){
        driver.switchTo().window(winHandle);
       }
    }

Это должно сработать для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...