WebDriver + Internet Explorer, problema de switchTo.window

Uso Selenium 2 + Java para probar la aplicación en IE 9. Después de hacer clic en el enlace, se abre la ventana emergente. Yo uso el método switchTo.window para ir a la ventana emergente. Pero cuando trato de regresar, mi prueba se retrasa en esta operación y no continúa.

Algún código:

link.click(); //Open pop-up window    
Object[] windows = driverIE.getWindowHandles().toArray();    
driverIE.switchTo().defaultContent();    
driverIE.switchTo().window(windows[1].toString());  //Focus on pop-up window    
.....    
mainWindowHandle = driverIE.getWindowHandles().iterator().next();   //Handle of main window    
driverIE.switchTo().window(mainWindowHandle);   //Fail!    

Por favor ayudame a resolver el problema.

Respuesta 1

getWindowHandles()No se garantiza que los identificadores de Windows devueltos estén en ningún orden. En otras palabras, no puede depender windows[1]en su ejemplo de código anterior para contener el identificador de ventana de la ventana abierta. Más bien, necesita un código que se parezca a lo siguiente ( NOTA: ¡ Código completamente no probado por delante!):

String mainHandle = driver.getWindowHandle();

// Do whatever you need to do to open a new window,
// and properly wait for the new window to appear...

Set<String> allHandles = driver.getWindowHandles();
for(String currentHandle : allHandles) {
  // Note that this is cheating a bit. It will only
  // work with a total of two windows. If you have
  // more than two windows total, your logic here
  // will have to be a little more sophisticated.
  if (!currentHandle.equals(mainHandle)) {
    driver.switchTo().window(currentHandle);
    break;
  }
}

// Work with popup window...
// Close the popup window and switch context back
// to the main window.
driver.close();
driver.switchTo().window(mainHandle);
Respuesta: 2

posiblemente una pregunta tirval ... Tengo 2 directorios dentro de un proyecto Java que representan (digamos) un modelo y una vista. Estos 2 directorios se asignan en eclipse como dos carpetas de origen, ambas en la ruta de compilación ...

Estoy buscando cómo hacer lo mismo que Open Explorer en un archivo de SWT. Ahora estoy usando Program.launch (someDirectoryPath) ;, pero abre Explorer dentro de algún directorio, pero no selecciono ningún archivo. Es posible en ...

Hola, me enfrento a un extraño problema relacionado con la vista web de Android. Estoy teniendo un componente de vista web en un diseño. y en el método de Actividad onCreate estoy cargando esa vista web con una url, agregando algunos ...

Lo que se considera la mejor práctica al extender la sintaxis de Velocity. Los dos mecanismos disponibles son Directivas y Macros. Ambos se ven igualmente poderosos. Las directivas requieren el desarrollo real de ...