Обработка нескольких окон в Selenium Webdriver - PullRequest
0 голосов
/ 05 января 2012

Что если один и тот же контрольный пример откроет более двух окон одновременно, то как обрабатывать эти несколько окон одновременно, более конкретно, если я хочу, чтобы мое главное окно закрывалось позже, а другие окна закрывались первыми?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2014

вы можете сделать что-то вроде этого

1. Перед открытием дочерних окон (нажав на ссылки и т. Д.)

parentWindowHandle = driver.getWindowHandle();

2. При каждом новом окне

    public String getChildHandle(WebDriver driver,String parentWindowHandle)
    {
        String childWindowHandle = null;

        Set<String> allWindowHandles = driver.getWindowHandles();
        Iterator itr = allWindowHandles.iterator();

        while(itr.hasNext())
        {
            String temp=(String) itr.next();
            if(temp.equalsIgnoreCase(parentWindowHandle))  // you can compare with any handle or you can compare with all existing window handles
            {
                System.out.println("Same as parent handle-> "+temp);
            }
            else
            {
                childWindowHandle = temp;
            }
        }
        return childWindowHandle;
    }

3.Закройте любое нежелательное окно

driver.switchTo().window(parentWindowHandle/childWindow1/childWindow2);
driver.close();
0 голосов
/ 05 января 2012

Вы можете использовать

driver.switchTo().window("windowName");

, чтобы выбрать правильное окно перед вызовом driver.close().(Если не осталось окон, браузер закроется.)

Более подробная информация здесь

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