Solución:
Eso es por sus respuestas chicos. ¡Está resuelto!
La solución:
-
Mientras uso el
webDriver.SwitchTo().DefaultContent();
cambia elwebDriver
a la ventana más alta de la página. [Previously I was looking for the button element in this window and therefore was not able to find it as the button was sitting in the main frame of the page] -
Después de cambiar a la ventana principal, cambié el
webDriver
de nuevo al marco principal de la página. Este marco principal tenía el elemento de botón. Así pude encontrar el elemento de botón. ¡Y esto resolvió el problema!
Entonces el código final no tiene webDriver.SwitchTo().DefaultContent();
pero tiene lo siguiente en su lugar:
_webDriver.SwitchTo().Window(windowHandle);
_webDriver.SwitchTo().Frame("mainFrame");
Nota: windowHandle en el código anterior es el identificador de la ventana superior de la página. Supongo que su valor puede cambiar según los navegadores, aunque no estoy seguro.
El siguiente código funcionó bien:
driver.switchTo().parentFrame();
Estaba luchando con un problema similar y descubrí que podía volver Window Handle
:
string currentWindow = Driver.CurrentWindowHandle;
// switch to frame and do stuff..
Driver.SwitchTo().Window(currentWindow); // switch back