Cambiar al cuadro de diálogo web en Selenium Webdriver: Python

Quiero manejar un cuadro de diálogo web bajo el controlador web de selenium (Internet Explorer). Estoy usando Python

En mi aplicación, cuando hago clic en el icono, se abre un cuadro de diálogo web que contiene algunos cuadros de texto (elementos web) y necesito hacer clic en el botón Guardar después de ingresar un texto. El problema es que no sé si el foco se cambió al cuadro de diálogo web o no. Aqui esta mi codigo

driver.find_element_by_xpath("//img[contains(@src,'/images/btn_add.gif')]").click() driver.switch_to_alert() driver.find_element_by_name("report_cutoff_date").sendkeys("10/31/2010") 

Aquí está el error que estoy recibiendo

 Traceback (most recent call last): File "C:\Users\vthaduri\workspace\LDC\test.py", line 14, in  driver.find_element_by_name("report_cutoff_date").sendkeys("10/31/2010") File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 282, in find_element_by_name return self.find_element(by=By.NAME, value=name) File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 651, in find_element {'using': by, 'value': value})['value'] File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\webdriver.py", line 153, in execute self.error_handler.check_response(response) File "C:\Python27\lib\site-packages\selenium-2.21.2-py2.7.egg\selenium\webdriver\remote\errorhandler.py", line 147, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Message: u'Unable to find element with name == report_cutoff_date' 

Para su información, el elemento web está presente con el mismo nombre y fecha de corte.

Alguien me puede ayudar en esto.

Prueba esto:

 parent_h = browser.current_window_handle # click on the link that opens a new window handles = browser.window_handles # before the pop-up window closes handles.remove(parent_h) browser.switch_to_window(handles.pop()) # do stuff in the popup # popup window closes browser.switch_to_window(parent_h) # and you're back 

Creo que el problema está en el siguiente código:

 driver.switch_to_alert(); 

Desea cambiar a otro cuadro de diálogo que aparece cuando realiza la primera operación de clic (). Creo que esta casilla que aparece no es una alerta . Es posible que tenga que cambiar al otro cuadro de diálogo usando

  driver.getWindowHandles(); driver.switchTo().window(handle); 

Puedes ver un ejemplo aquí .

¿Puedes intentar poner un poco de demora / espera antes de cambiar la instrucción?