Hacer clic en el enlace mata la prueba
-
27-09-2019 - |
Pregunta
El siguiente comando
selenium.click("link=Identify Awards");
Abre una ventana emergente, sin embargo, la prueba no continúa
He colocado
selenium.waitForPopUp(null, "1500");
selenium.windowFocus();
selenium.selectPopUp("Search -- Webpage Dialog");
Después del comando de clic en visión, el enlace es a una función Java.
Sé que este comando hace clic en un enlace, botón, casilla de verificación o botón de radio. Si la acción de clic hace que se cargue una nueva página (como suele hacer un enlace), llamewaitForPageToLoad
. Yo creo que el waitforPageToLoad
no está registrando la carga emergente
Actualizar
Probé lo siguiente
selenium.fireEvent("link=Identify Awards", "onClick");
y tengo lo siguiente
La ventana emergente está en otro dominio, ¿podría ser esta la causa?
Exception in thread "Main Thread" org.openqa.selenium.ie.UnexpectedJavascriptExecutionException: Cannot execute script
System info: os.name: 'Windows Vista', os.arch: 'x86', os.version: '6.1', java.version: '1.5.0_12'
Driver info: driver.version: ie
at org.openqa.selenium.ie.ErrorHandler.verifyErrorCode(ErrorHandler.java:70)
at org.openqa.selenium.ie.InternetExplorerDriver.executeScript(InternetExplorerDriver.java:205)
at org.openqa.selenium.internal.seleniumemulation.JavascriptLibrary.callEmbeddedSelenium(JavascriptLibrary.java:47)
at org.openqa.selenium.internal.seleniumemulation.FireEvent.handleSeleneseCommand(FireEvent.java:35)
at org.openqa.selenium.internal.seleniumemulation.FireEvent.handleSeleneseCommand(FireEvent.java:1)
at org.openqa.selenium.internal.seleniumemulation.SeleneseCommand.apply(SeleneseCommand.java:33)
at org.openqa.selenium.internal.seleniumemulation.Timer.run(Timer.java:47)
at org.openqa.selenium.WebDriverCommandProcessor.execute(WebDriverCommandProcessor.java:277)
at org.openqa.selenium.WebDriverCommandProcessor.doCommand(WebDriverCommandProcessor.java:209)
at com.thoughtworks.selenium.DefaultSelenium.fireEvent(DefaultSelenium.java:201)
Solución
usar selenium.selectWindow
para seleccionar emergente y luego usar selenium.selectWindow(null)
Para seleccionar la ventana base. No describiste como qué tipo de ventana emergente es. Es un cuadro de confirmación o un cuadro o un cuadro de diálogo de modelo o simplemente otra ventana. El selenio difiere en el tratamiento de todos estos
Otros consejos
Descubrí que en algunas ocasiones al activar JavaScript, en particular, la función de clic de Selenium no invoca el comando Elements OnClick correctamente y este podría ser el problema que está encontrando.
Si es así, intente usar lo siguiente para disparar explícitamente el evento OnClick:
selenium.fire_event("link=Identify Awards", "onClick")
Espero que ayude.