Selenium Webdriver Как переключаться между разными окнами Firefox

Для того, чтобы войти в конференцию как 4 разные роли, для каждой роли я написал

System.setProperty("webdriver.firefox.profile", "default");
FirefoxDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);
driver.get("link to the conference");

Как тогда я могу переключаться между окнами Firefox? Заголовки Windows одинаковые. Спасибо


person Miron Markevich    schedule 23.08.2012    source источник
comment
Вы создаете новый FirefoxDriver для каждой роли? Если это так, вы должны просто использовать FirefoxDriver, который соответствует каждому окну.   -  person Ignacio Contreras Pinilla    schedule 23.08.2012


Ответы (2)


Вы можете использовать этот код для навигации между окнами, если хотите, вы можете изменить его в соответствии с вашими потребностями.

//All the window handles will be returned and u can use window handle to switch between the windows

Set<String> windows = getWebDriver().getWindowHandles();

    Iterator<String> window = windows.iterator();


    while( window.hasNext() ) {

        getWebDriver().switchTo().window( window.next() );

    }
person Dhivya    schedule 24.08.2012

public TasksWindow OpenInWindow() {
    WebDriverWait wait = new WebDriverWait(Driver.driver, TimeSpan.FromSeconds(10));
    wait.IgnoreExceptionTypes(typeof(AssertionException));
    String windowName = wait.Until<String>((d) => {
        this.windowSwitcher.Click();

        if (d.WindowHandles.Count != 2) // this means you are waiting till the number of windows equals 2 {
            return null;
        }

        return d.WindowHandles[1]; // this means you are changing to the second window (from [0] to [1])
    });

    return new TasksWindow(windowName);
}

Это работает в С#

person Ivan Reznikov    schedule 23.08.2012