Pitão. Selênio. Como aguardar a abertura de uma nova janela?

Eu tenho um botão com o twitter, e depois de clicar em uma nova janela é aberta, mas antes de abrir, há um tempo limite em alguns segundos, então há uma maneira de esperar por isso? Eu estou mal por enquanto ...

    Ui.click_el(link.W9FormNodes.TWITTER_BUTTON)
    # Wait for new window and switch to it
    time.sleep(3)
    aw = driver.window_handles
    driver.switch_to_window(aw[1])

Então, eu preciso de algo melhor, que espere apenas a quantidade de segundos que precisa.

Eu acho que resolvo dessa maneira. Mas talvez alguém tenha comentários sobre como fazê-lo melhor.

    aw = Ui.click_and_wait_for_window(link.W9FormNodes.TWITTER_BUTTON)
    driver.switch_to_window(aw[1])

E aqui está um método que clica no botão e aguarda nova janela:

    def click_and_wait_for_window(self, node):
        current_value = old_value = self.driver.window_handles
        self.click_el(node)
        while len(current_value) == len(old_value):
            time.sleep(0.05)
            current_value = self.driver.window_handles
        return current_value

questionAnswers(2)

yourAnswerToTheQuestion