Verifique el elemento presente y espere el comando en Selenium
โก Resumen inteligente
Verificar la presencia del elemento y los comandos waitFor en Selenium El IDE confirma que una pรกgina contiene los elementos y el texto que espera una prueba, y pausa la reproducciรณn hasta que una condiciรณn dinรกmica se cumpla antes de ejecutar el siguiente paso.
un grabado Selenium IDE El script hace clic y escribe, pero por sรญ solo nunca decide si la aplicaciรณn se comportรณ correctamente. Dos familias de comandos realizan ese trabajo: verificar comandos, que comprueban el estado de la pรกgina y esperar comandos que detienen la ejecuciรณn hasta que la pรกgina estรฉ lista para ser revisada.
โ ๏ธ Una nota sobre las versiones: Las capturas de pantalla que aparecen a continuaciรณn provienen del original. Firefox-enchufar Selenium IDE, que ya no se distribuye, y usan sus nombres selenes en camelCase. El IDE actual es Chrome, Firefox y Edge extensiรณn del navegador. El comportamiento descrito aquรญ sigue siendo vรกlido, pero varios nombres de comandos cambiaron: un mapaping La tabla aparece mรกs adelante en este artรญculo, y cada comando y captura de pantalla original se conserva exactamente como se publicรณ.
Verificar la presencia de un elemento
Podemos utilizar los siguientes dos comandos para verificar la presencia de un elemento:
- verificarElementoPresente โ devuelve VERDADERO si el elemento especificado se ENCONTRร en la pรกgina; FALSO en caso contrario
- verificarElementNotPresent โ devuelve VERDADERO si el elemento especificado NO se ENCONTRร en ninguna parte de la pรกgina; FALSO si estรก presente.
Ambos comandos toman un elemento localizador en el Target campo: un ID, un nombre, un selector CSS, un texto de enlace o un XPath expresiรณn โ y ninguna necesita un valor.
El script de prueba a continuaciรณn verifica que el cuadro de texto Nombre de usuario estรฉ presente dentro del Mercury Pรกgina de inicio de Tours, mientras que el cuadro de texto Nombre no estรก. El cuadro de texto Nombre es en realidad un elemento presente en la pรกgina de Registro de Mercury Tours, no en la pรกgina de inicio.
Porque estos son verificar comandos en lugar de afirmar Si se producen errores en los comandos, se registra un fallo en el archivo de registro y los pasos restantes se ejecutan igualmente. Esta distinciรณn se explica con mรกs detalle mรกs adelante.
Verificar la presencia de un determinado texto en el comando en Selenium
Comprobar que un elemento existe no siempre es suficiente; a menudo, una prueba necesita confirmar las palabras que se muestran al usuario. Dos comandos de texto cubren ese caso.
- verificarTextoPresente โ devuelve VERDADERO si la cadena de texto especificada se ENCONTRร en algรบn lugar de la pรกgina; FALSO en caso contrario
- verificarTextoNoPresente โ devuelve VERDADERO si la cadena de texto especificada NO se ENCONTRร en ninguna parte de la pรกgina; FALSO si se encontrรณ
Recuerde que estos comandos distinguen entre mayรบsculas y minรบsculas.
El registro que aparece a continuaciรณn muestra la misma pรกgina revisada dos veces con dos grafรญas diferentes de la misma frase.
En el escenario anterior, "Atlanta a Las Vegas" se tratรณ de manera diferente a "atlanta a Las Vegas" porque la letra "A" de "Atlanta" estaba en mayรบscula en la primera y en minรบscula en la segunda. Al usar el comando verifyTextPresent en cada una, una se procesรณ correctamente y la otra fallรณ.
Verificar la posiciรณn especรญfica de un elemento
Los defectos de diseรฑo rara vez afectan a un localizador, por lo que las comprobaciones de presencia no los detectan. Los comandos de posiciรณn solucionan ese problema.
Selenium IDE indica la posiciรณn de un elemento midiendo (en pรญxeles) quรฉ tan lejos estรก del borde izquierdo o superior de la ventana del navegador.
- verificarElementPositionLeft โ verifica si el nรบmero especificado de pรญxeles coincide con la distancia del elemento desde el borde izquierdo de la pรกgina. Esto devolverรก FALSO si el valor especificado no coincide con la distancia desde el borde izquierdo.
- verificarPosiciรณnElementoSuperior โ verifica si el nรบmero especificado de pรญxeles coincide con la distancia del elemento desde el borde superior de la pรกgina. Esto devolverรก FALSO si el valor especificado no coincide con la distancia desde el borde superior.
El siguiente script registra los desplazamientos de pรญxeles esperados en la columna Valor.
Trate estos dos comandos con precauciรณn. El desplazamiento de pรญxeles varรญa segรบn el tamaรฑo de la ventana, el nivel de zoom y las fuentes instaladas, por lo que un valor fijo que funciona en un equipo puede fallar en otro.
Esperar comandos en Selenium
Un comando de verificaciรณn solo puede inspeccionar lo que ya estรก en pantalla, por lo que una comprobaciรณn que se ejecuta demasiado pronto falla aunque la aplicaciรณn estรฉ funcionando. Los comandos de espera solucionan ese problema de sincronizaciรณn.
Los siguientes son los tipos de comandos de espera en Selenium
y esperar comandos
Estos son comandos que esperarรกn a que se cargue una nueva pรกgina antes de pasar al siguiente comando.
Ejemplos son
- hacer clic y esperar
- escriba y espere
- seleccionar y esperar
Cada una de ellas es una orden de acciรณn ordinaria con el sufijo AndWait aรฑadido, como muestra el paso grabado a continuaciรณn.
esperar por comandos
Estos son comandos que esperan a que se cumpla una condiciรณn especรญfica antes de pasar al siguiente comando (independientemente de que se cargue una nueva pรกgina). Estos comandos son mรกs apropiados para usarse en sitios web dinรกmicos basados โโen AJAX que cambian valores y elementos sin recargar toda la pรกgina. Ejemplos incluyen:
- esperar por el tรญtulo
- esperarParaTextoPresente
- esperar alerta
Considere el escenario de Facebook a continuaciรณn.
Podemos usar una combinaciรณn de "hacer clic" y "esperarForTextPresent" para verificar la presencia del texto "Proporcionar su cumpleaรฑos".
No podemos usar clickAndWait porque no se cargรณ ninguna pรกgina al hacer clic en "ยฟPor quรฉ debo proporcionar mi fecha de nacimiento?" enlace. Si lo hacemos, la prueba fallarรก.
La misma regla se aplica a cualquier contenido inyectado por script en lugar de por navegaciรณn, por eso Pantallas controladas por AJAX casi siempre es necesario waitFor en lugar de andWait.
Comandos Assert vs Verify vs waitFor en Selenium IDE
Los principiantes frecuentemente eligen la familia equivocada y luego se preguntan por quรฉ un conjunto se detiene en el primer defecto, o por quรฉ informa veinte fallas que todos trace volver a uno. Los tres prefijos responden a tres preguntas diferentes.
| Prefijo | ยฟQuรฉ hace? | En caso de fracaso | Mejores usados โโpara |
|---|---|---|---|
| afirmar | Comprueba una condiciรณn inmediatamente | Registra el fallo y detiene el caso de prueba. | Requisitos previos: un inicio de sesiรณn que debe ser exitoso antes de que cualquier otra cosa tenga sentido. |
| verificar | Comprueba una condiciรณn inmediatamente | Registra el fallo y continรบa con el siguiente comando. | Controles independientes, como varias etiquetas en una pรกgina de confirmaciรณn. |
| esperarPor | Las encuestas se realizarรกn hasta que la condiciรณn se cumpla. | Registra el fallo una vez que expira el tiempo de espera y luego continรบa. | Todo lo que aparezca tarde: respuestas AJAX, indicadores de carga, diรกlogos. |
Un patrรณn prรกctico combina los tres: afirmar la pรกgina en la que se aterrizรณ, esperar el elemento que llega de forma asรญncrona y luego verificar cada campo individual. Hacerlo en ese orden significa que una navegaciรณn defectuosa detiene la prueba prematuramente, mientras que un puรฑado de discrepancias cosmรฉticas se informan en una sola ejecuciรณn. La misma disciplina se traslada a Selenium pruebas escritas en cรณdigo, donde los equivalentes son aserciones estrictas, aserciones flexibles y esperas explรญcitas.
Comandos de verificaciรณn y espera en el actual Selenium IDE
El FirefoxEl IDE de plugin que generรณ las capturas de pantalla anteriores fue retirado y el conjunto de comandos se reconstruyรณ para la extensiรณn de navegador actual. Varios nombres de Selenese se conservaron, algunos fueron renombrados y unos pocos fueron eliminados. La tabla a continuaciรณn relaciona los comandos utilizados en este artรญculo con sus equivalentes actuales, tomados de la documentaciรณn oficial. Selenium Referencia de comandos del IDE.
| Comando selenese heredado | Comando en el IDE actual |
|---|---|
| verificarElementoPresente | verificar la presencia del elemento |
| verificarElementNotPresent | verificar que el elemento no estรฉ presente |
| verificarTextoPresente | verificar texto (limitado a un localizador de elemento, no a toda la pรกgina) |
| verificarTextoNoPresente | verificar que no sea texto (limitado a un localizador de elementos) |
| verificarTรญtulo | verificar tรญtulo |
| verificarPosiciรณnElementoIzquierda / verificarPosiciรณnElementoSuperior | No hay equivalente: se eliminaron las afirmaciones de posiciรณn. |
| clicYEsperar, escribirYEsperar, seleccionarYEsperar | Sin el sufijo AndWait: el comando open ya espera a que se cargue la pรกgina. |
| esperarPorElementoPresente | esperar a que el elemento estรฉ presente, con un tiempo de espera en milisegundos |
| esperar alerta | Confirme la alerta o verifique el texto de la alerta despuรฉs de que aparezca el cuadro de diรกlogo. |
Dos diferencias son cruciales en el trabajo diario. Primero, los comandos de espera actuales โesperar a que el elemento estรฉ presente, esperar a que el elemento sea visible, esperar a que el elemento sea editable y sus equivalentes negativosโ requieren un tiempo de espera explรญcito en milisegundos, por lo que un paso lento ya no tiene que compartir un tiempo de espera global. Segundo, la bรบsqueda de texto en toda la pรกgina ha desaparecido: verificar el texto requiere un localizador, que generalmente produce una comprobaciรณn mรกs precisa.
Errores comunes con los comandos Verify y waitFor
La mayorรญa de los problemas reportados con estos comandos no son defectos del IDE. La siguiente lista incluye los fallos mรกs frecuentes y cรณmo solucionarlos.
- El elemento existe, pero la comprobaciรณn sigue fallando. La presencia y la visibilidad son estados diferentes. Un elemento oculto tras una regla CSS sigue presente en el DOM, por lo que conviene combinar la comprobaciรณn de presencia con la espera a que el elemento sea visible cuando la prueba dependa de que el usuario lo vea realmente.
- La comprobaciรณn de texto falla cuando la redacciรณn parece idรฉntica. Los espacios de no separaciรณn, los espacios en blanco al final de las lรญneas y los apรณstrofes curvados copiados de un documento de diseรฑo impiden una coincidencia exacta. Vuelva a escribir la cadena esperada manualmente en lugar de pegarla.
- Un comando de espera agota el tiempo de espera en una pรกgina que claramente se cargรณ. El elemento suele estar dentro de un iframe. Ejecute primero la selecciรณn del marco; de lo contrario, el localizador se evaluarรก en el documento incorrecto.
- clickAndWait se bloquea en una aplicaciรณn de una sola pรกgina. No se produce ninguna navegaciรณn, por lo que no hay nada que esperar. Sustitรบyalo por un clic seguido del comando waitFor correspondiente.
- La comprobaciรณn de posiciรณn se realiza correctamente a nivel local, pero falla en el servidor de compilaciรณn. El tamaรฑo de la pantalla y la representaciรณn de la fuente varรญan. Se recomienda realizar una comprobaciรณn de presencia o de texto, o bien, establecer un tamaรฑo de ventana explรญcito al inicio de la prueba.
- Todo el proceso se detiene ante la primera discrepancia. Se registrรณ un comando de aserciรณn donde se pretendรญa registrar un comando de verificaciรณn. Cambie el prefijo y la ejecuciรณn informarรก de todos los fallos en lugar de solo del primero.
Una vez que un guion sobrevive a estas trampas, el siguiente paso suele ser... Almacenar valores de tiempo de ejecuciรณn en variables De esta forma, las comprobaciones se comparan con datos reales en lugar de con cadenas de texto predefinidas.






