public T withNewWindow()

in module/geb-core/src/main/groovy/geb/Browser.groovy [800:823]


    public <T> T withNewWindow(Map options, Closure windowOpeningBlock, @DelegatesTo(value = Browser, strategy = DELEGATE_FIRST) Closure<T> block) {
        def originalWindow = currentWindow
        def originalPage = getPage()

        def wait = options.containsKey("wait") ? options.wait : config.withNewWindowConfig.wait
        def newWindow = executeNewWindowOpening(windowOpeningBlock, wait)
        try {
            switchToWindow(newWindow)
            if (options.page) {
                verifyAtImplicitly(options.page)
            }

            Closure cloned = block.clone()
            cloned.delegate = browser
            cloned.resolveStrategy = DELEGATE_FIRST
            cloned.call()
        } finally {
            if ((!options.containsKey(CLOSE_OPTION) && config.withNewWindowConfig.close.orElse(true)) || options.close) {
                getDriver().close()
            }
            switchToWindow(originalWindow)
            page originalPage
        }
    }