class Selenium::WebDriver::TargetLocator
def new_window(type = :window)
def new_window(type = :window) raise ArgumentError, "Valid types are :tab and :window, received: #{type.inspect}" unless %i[window tab].include?(type) handle = @bridge.new_window(type)['handle'] if block_given? execute_and_close = proc do yield(self) begin @bridge.close rescue Error::NoSuchWindowError # window already closed end end window(handle, &execute_and_close) else window(handle) end end