Selenium 4 está aquí y a partir de ahora Selenium Webdriver estará completamente estandarizado por W3C. Navegadores como Chrome, Safari, Firefox, IE y Edge siguen la estandarización de W3C, lo que brinda más uniformidad y estabilidad en los comandos de Selenium que funcionan de manera uniforme en diferentes navegadores reales.
Únete a David Burns, Colaborador Principal de Selenium, mientras habla sobre cómo esto afectará tus pruebas y las brillantes características nuevas que puedes comenzar a usar de inmediato. David mostrará cómo puedes acceder a un sitio protegido con autenticación básica, identificar una mutación del DOM, obtener errores de JS o mensajes de consola a medida que ocurren, utilizar nuevas APIs de Impresión y Ventana para ayudar con tus pruebas y más.
This talk has been presented at TestJS Summit 2021, check out the latest edition of this JavaScript Conference.
FAQ
Selenium 4 es la última versión de la herramienta de automatización de pruebas, que incluye nuevas características como localizadores relativos, APIs de ventanas, capacidad de imprimir páginas en PDF, código basado en eventos, y mejoras en Selenium Grid.
Selenium Grid en Selenium 4 ha sido rediseñado para mejorar la escalabilidad y la observabilidad. Utiliza tecnologías modernas como buses de eventos y ofrece mejor integración con herramientas como Jaeger para monitorización.
Las nuevas APIs de impresión permiten generar PDFs de páginas web, devolviendo los archivos en codificación Base64. Estas funcionalidades son útiles tanto para pruebas de impresión como para automatización básica.
El código basado en eventos en Selenium 4 permite interactuar con eventos del DOM y del navegador, como mutaciones, errores de JavaScript y mensajes de consola. Esto ayuda a realizar pruebas más dinámicas y adaptativas.
Selenium 4 ha mejorado la gestión de pestañas y ventanas, permitiendo crear nuevas pestañas y moverse entre ellas fácilmente, lo que antes era limitado debido a restricciones de control sobre el navegador.
Los localizadores relativos permiten encontrar elementos en una página web basándose en su posición relativa a otros elementos. Esto facilita la localización de elementos que pueden no tener identificadores únicos o cuyo posicionamiento puede variar.
La intercepción de la red en Selenium 4 permite escuchar y manipular llamadas de red durante las pruebas. Esto es útil para simular condiciones de red específicas o modificar respuestas de recursos durante las pruebas.
Selenium 4.0 introduce emocionantes características como localizadores relativos, nuevas APIs de ventana, código basado en eventos e intercepción de red. Su objetivo es facilitar la automatización con mejoras en la escalabilidad, observabilidad y manejo de ventanas y pestañas. El enfoque está en mejorar la calidad de la web e incorporar los comentarios de los usuarios. Selenium 4.0 también ofrece un mejor soporte para pruebas móviles y servicios en la nube, con mejoras continuas en la documentación.
Hola a todos. Hoy hablaré sobre Selenium 4.0 y sus nuevas características, incluyendo localizadores relativos, nuevas APIs de ventanas y código basado en eventos. Estén atentos a las emocionantes características en Selenium Grid.
Hola a todos. Y bienvenidos a mi charla de hoy. Voy a hablar sobre Selenium 4.0 que fue lanzado hace un par de semanas. Pero antes de entrar en eso, me gustaría contarles quién soy. Mi nombre es David. Soy el líder del equipo de código abierto en Browserstack. Soy un colaborador principal de Selenium, soy coeditor de la especificación de WebDriver dentro de la W3C. Y soy el presidente del grupo de trabajo de pruebas cada vez que se quiere estandarizar algo, tiende a pasar por mi grupo de trabajo donde hacemos todo lo posible para asegurarnos de que todos los navegadores te vayan a soportar a ti, el usuario final. Y aquí está nuestra agenda para hoy. Así que, voy a hablar sobre qué es Selenium 4. Algunas de las nuevas características que se han incluido, como los localizadores relativos y las nuevas APIs de ventanas, está la nueva capacidad de imprimir páginas, y luego voy a dedicar un poco de tiempo a hablar sobre el nuevo código basado en eventos, que te permite en lugar de tener que esperar para que tus pruebas funcionen con Selenium, ahora puedes recibir eventos emitidos a ti y continuar con tus pruebas. Estas son características realmente geniales. Y al final, terminaré hablando sobre algunas de las nuevas y excelentes características de Selenium Grid.
2. Selenium 4.0 Descripción general
Short description:
Selenium 4 ha sido una cantidad increíble de trabajo que tomó cinco años y más de 4,400 commits de colaboradores de todo el mundo. El cambio principal es que podrás simplemente instalarlo y las cosas deberían funcionar. Habrá advertencias de deprecación, pero no deberían ser alarmantes. Nos estamos preparando para Selenium 4.1 y más allá.
Entonces, Selenium 4 ha sido una cantidad increíble de trabajo que se ha invertido en él. Piénsalo como construir una ciudad. Nos llevó cinco años sacarlo y más de 4,400 commits de numerosos colaboradores de todo el mundo. Hemos reescrito grandes partes del código base. Hemos deprecado grandes partes del código base. Y así que cuando empieces a usarlo, será un gran cambio, pero el cambio principal que no notarás realmente es que podrás simplemente instalarlo y las cosas deberían funcionar. Esta es una de las principales razones por las que hemos dedicado tanto tiempo a enfocarnos en los pequeños detalles para hacerlo más fácil. Entonces, cuando hagas el cambio, habrá varias advertencias de deprecación con las que tendrás que lidiar, pero ninguna de ellas debería ser alarmante en absoluto. Se trata de asegurarnos de que estemos listos para cuando lleguemos a Selenium 4.1 y más allá.
3. Relative Locators in Selenium 4.0
Short description:
Una de las características realmente geniales en Selenium 4.0 son los localizadores relativos. Con los localizadores relativos, puedes encontrar fácilmente otros elementos en la página en función de la ubicación de un elemento conocido. Utilizando tecnología desarrollada con Sahi y ThoughtWorks, Selenium analiza el cuadro delimitador de los elementos y su proximidad dentro del DOM para realizar la localización relativa. La lista de elementos devueltos comienza desde el más cercano hasta el más lejano.
Entonces, con eso, voy a comenzar a hablar sobre algunas de las características realmente geniales. Una de las que me entusiasma mucho son los localizadores relativos. La idea aquí es que, si sabes dónde se encuentra un elemento en la página, puedes comenzar a buscar otros elementos en la página de manera bastante sencilla. Entonces, en este caso, si quisieras comenzar en el centro del tablero aquí, dice un proceso abierto. Selenium es un proyecto de código abierto. Queremos hacer todo lo posible de manera abierta. Y ahora queremos encontrar cualquier cosa en la parte superior derecha, oh, perdón, en la parte superior izquierda que pueda tener la palabra 'abrir'. Entonces, la nueva capacidad nos permitiría encontrar un elemento comenzando con 'proceso abierto' y luego encontrar cualquier cosa en la parte superior derecha que pueda tener un texto de enlace que diga 'abrir'. O texto de enlace parcial. Y comenzamos a buscar en el DOM para encontrar lo que podamos. Lo hacemos utilizando tecnología que se desarrolló por primera vez con Sahi y otro proyecto que es gestionado por ThoughtWorks. Y simplemente intenta hacer una localización relativa. Lo hace mirando el cuadro delimitador. Entonces, los pequeños cuadrados que cada elemento en la página crea y ve qué tan lejos está. También hace un poco de búsqueda dentro del DOM para ver si está cerca de ti dentro del propio DOM. Solo para intentar acelerar algunos de los retornos. Y luego, cuando obtienes una lista de elementos, normalmente comienzan desde el más cercano hasta el más lejano
4. Características de Selenium 4.0
Short description:
Los localizadores relativos son una característica genial, pero ten cuidado con los reflujo de página. Selenium 4 introduce nuevas APIs de ventanas, permitiendo la creación de pestañas y la comunicación entre ellas. Otra característica es la capacidad de imprimir páginas, creando PDFs con fines de automatización. Los proveedores de navegadores también se benefician de esta característica para probar sus capacidades de impresión.
en caso de que tengas múltiples. Esta es una característica realmente genial. Pero debes tener mucho cuidado al usarla, especialmente si tu página se reorganiza o si estás pasando de escritorio a móvil y tienes un área más pequeña para probar, las cosas pueden no estar en la misma ubicación relativa. Pueden moverse hacia abajo, pueden moverse. Así que tenlo en cuenta. Pero es una característica realmente genial cuando comienzas a usarla.
El siguiente conjunto de APIs del que quiero hablar son las nuevas APIs de ventanas. Durante años, la gente ha querido que Selenium cree nuevas pestañas. Querían poder comunicarse de una pestaña a otra, o de una ventana a otra. Y Selenium no ha permitido eso porque nunca tuvimos suficiente control sobre el navegador para hacerlo. Trabajando con los proveedores de navegadores, encontramos una forma de hacerlo. Aprendimos mucho en el proceso. `Ventanas` es uno de esos términos extraños en un navegador que puede significar muchas cosas diferentes. Este es uno de los problemas clave que tuvimos con Selenium al intentar admitir esto. Si alguna vez hiciste algo y debería haber abierto una nueva pestaña, habrás notado que intentamos forzarlo a abrir una nueva ventana. Podrás crear nuevas pestañas y ventanas y moverte entre ellas utilizando las APIs existentes de cambio de ventana. Esto puede ser realmente genial. Tenemos la capacidad de crear una ventana específica. Es decir, una ventana con su propia pestaña. Si solo quieres estar en una pestaña, puedes abrir una nueva pestaña. Esto solo está disponible en Selenium 4, pero funcionará con cualquier controlador que lo tenga en el futuro, lo cual incluye definitivamente Chrome y Firefox. Safari, sé que lo tendrá pronto si aún no lo tiene. La siguiente característica que notamos que mucha gente quería era la capacidad de imprimir páginas. La impresión puede ser muy difícil de probar. Y así, la gente intentaba formas extrañas e innovadoras de imprimir. Usarían Selenium con un framework de robot o invocarían formas nuevas y maravillosas de imprimir. Pero ahora, con las nuevas APIs de impresión de páginas, puedes crear PDFs. Estos se devolverán desde un controlador utilizando codificación Base64 para que puedas compilarlos y guardarlos en disco o, si quieres, simplemente volver a codificarlo en un documento PDF y usarlo en memoria. Notamos que mucha gente quería esta característica solo para automatización básica. No necesariamente para sus pruebas, sino para automatización básica. Los proveedores de navegadores querían esta característica porque querían probar sus nuevas capacidades de impresión.
5. Event-Driven Code and New Features
Short description:
Y también prueba CSS, porque querían asegurarse de que si algo se ve igual, ya están haciendo su tipo de prueba de comparación de imágenes. El conjunto principal de características se centra en el código basado en eventos. Hemos agregado la capacidad de sortear la autenticación básica, configurar un escucha de mutaciones, detectar errores de JavaScript y realizar la intercepción de la red. Voy a mostrar algunos ejemplos de código.
Las características. Y también prueba CSS, porque querían asegurarse de que si algo se ve igual, ya están haciendo su tipo de prueba de comparación de imágenes. Pero esta fue otra forma de asegurarse de que CSS funcionara de la misma manera en diferentes navegadores. Así que esta es una característica realmente genial. Espero que la utilices. Y si encuentras algún error, avísanos.
Pero el conjunto principal de características del que quería hablar hoy se centra en el código basado en eventos. A la gente le han gustado algunas de estas características en Cypress o Playwright o Puppeteer. Desafortunadamente, actualizar constantemente entre Playwright y Puppeteer o estar limitado por los entornos de seguridad de JavaScript si estabas usando CSS y no poder probar completamente tus aplicaciones, hizo que la gente no supiera cómo probar estas cosas.
Así que aprendiendo de lo que los usuarios quieren, porque a finales del año pasado el Proyecto Selenium realizó su primera encuesta y escuchamos lo que la gente quería, y hemos implementado algunas de las características realmente geniales que querían. Hemos agregado la capacidad de sortear la autenticación básica, digestión, para que cada vez que tengas un sitio web con autenticación básica, Selenium manejará la URL y te permitirá pasar. En el pasado, si las personas querían esperar a que un cierto elemento tuviera una mutación en el DOM, tenían que sondear el controlador y preguntar, ¿ha cambiado esto? ¿ha cambiado esto? Ahora, con las nuevas APIs, puedes configurar un escucha de mutaciones. Entonces, cuando mute, puedes enviar un mensaje de vuelta a tus pruebas y puedes continuar de inmediato. Lo cual es una característica realmente genial. Esperemos que haga que tus pruebas sean un poco menos inestables. El tercero, y este es uno que mucha gente ha estado pidiendo, durante todo el tiempo que he trabajado en el proyecto Selenium, que es más de una década. Es escuchar los errores de JavaScript. Entonces, si te estás moviendo por una página y de repente hay un error de JavaScript, a veces estos son pasados por alto por las pruebas de Selenium e incluso a veces se pasan por alto por tus pruebas unitarias en JavaScript. Las nuevas APIs dentro de Selenium 4 te permiten escuchar estos errores de JavaScript y luego puedes fallar tu prueba al instante. De manera similar, con los registros de la consola. Si quieres escuchar y ver qué estaba sucediendo en una página. Entonces, si dijiste que querías que una prueba esperara un cierto mensaje de la consola, puedes emitirlo y luego continuar. Y, finalmente, una de las nuevas características que agregamos es la intercepción de la red. La capacidad de, cada vez que estás haciendo una transición a una página, escuchar ciertas llamadas de red y luego puedes simularlas. O falsificarlas. Y luego usar esas respuestas de manera significativa para cambiarlas como desees. Así que ya no tienes que hacer solo pruebas de camino feliz. Puedes hacer rutas negativas y áreas donde no envíes JSON válido. Podrás hacer muchas de esas nuevas características. O si solo quieres desactivar tus análisis, podrás hacerlo con tu red.
6. Funciones de Selenium 4.0 Continuadas
Short description:
Solo están en las diapositivas porque no tengo mucho tiempo para hablar de eso. Entonces, no puedo mostrártelas. Pero espero que tengas una idea de lo fácil que es agregar estas funciones a tu código. Aquí está la autenticación básica. El cambio principal para los usuarios de Selenium es que tenemos que crear una conexión CDP. Para las mutaciones del DOM, no es tan diferente. En este caso, vamos a crear nuestra conexión como antes. Y cada vez que obtengamos un evento de mutación de registro, se colocará en un escucha y luego continuaremos nuestras pruebas. Para las excepciones de JavaScript, tratamos de devolverte la mayor cantidad de información posible. En este caso, vamos a crear un escucha de excepciones de registro. Y cada vez que se active, podremos hacer lo que queramos.
en movimiento. Entonces, voy a mostrar algunos ejemplos de código. Solo están en las diapositivas porque no tengo mucho tiempo para hablar de eso. Entonces, no puedo mostrártelas. Pero espero que tengas una idea de lo fácil que es agregar estas funciones a tu código. Entonces, aquí está la autenticación básica. El cambio principal para los usuarios de Selenium es que tenemos que crear una conexión CDP. La conexión CDP utiliza el protocolo de depuración de Chrome por debajo para poder comunicarse con los controladores. Y en este caso, creamos nuestra conexión. Cada vez que queremos hacer una autenticación básica, registraríamos que es probable que obtengamos algo como esto. Entonces, esto nos indica internamente que hablemos con el navegador si encontramos una autenticación, estas son las cosas que queremos. En este caso, el primer argumento es admin, y eso es tu nombre de usuario. En este caso, la contraseña también es admin. No es la mejor seguridad, pero de todos modos. Y tenemos que usar esa conexión, que es una conexión WebSocket al navegador. Hacemos lo que sabemos, y luego, ¡presto!, lo logramos. Entonces, no hay realmente mucho cambio. Y necesitamos hacerlo de esta manera para asegurarnos de configurar las conexiones correctas a lo largo del camino. Entonces, para las mutaciones del DOM, no es tan diferente. En este caso, vamos a crear nuestra conexión como antes. Y cada vez que obtengamos un evento de mutación de registro, se colocará en un escucha y luego continuaremos nuestras pruebas. Entonces, en este caso, quiero asegurarme de que después de hacer clic en un botón, la visualización ya no sea none, que realmente tenga un valor adecuado. Y así, en nuestra prueba, simplemente vamos a hacer clic o encontrar el elemento, hacer clic en él, encontrar el elemento revelado, en este caso, y luego asegurarnos de esperar a que esté en el estado correcto y luego podemos hacer todas nuestras afirmaciones. Entonces, nuevamente, hemos tratado de hacer que esta API sea lo más simple posible.
Para las excepciones de JavaScript, tratamos de devolverte la mayor cantidad de información posible. Entonces, en este caso, vamos a crear un escucha de excepciones de registro. Y cada vez que se active, podremos hacer lo que queramos. En este caso, he creado una afirmación para asegurarme de saber cuál será el error, pero podría ser cualquier cosa. Entonces, si alguna vez llegara allí, simplemente podrías hacer que falle y luego imprimir todos los eventos. Se te proporcionará un objeto JSON. Lo siento. Vuelve como un objeto JSON, pero luego lo convertiremos en un objeto normal con el que puedes trabajar, y podrás obtener los detalles de la excepción, puedes ver toda la traza de la pila si quieres, o si solo quieres tramas específicas, puedes tener un
7. Avances en Selenium para Mejorar las Pruebas
Short description:
Agregar oyentes es lo único que necesitas hacer. Las intercepciones de red te permiten modificar las respuestas HTTP. La cuadrícula de Selenium ha sido rediseñada para mejorar la escalabilidad y la observabilidad. Las imágenes de Docker y los scripts de Helm facilitan la escalabilidad. El código ha sido mejorado y hay mensajes de ayuda disponibles para los usuarios.
echa un vistazo a eso y luego comprueba qué es. Y así, agregar tu oyente es lo único que necesitas hacer. De lo contrario, tu prueba sería como de costumbre. Y eso es lo que vemos en las últimas tres líneas de código. El siguiente es lo que creo que a mucha gente le ha emocionado mucho, que son las intercepciones de red. Nuevamente, creamos nuestra conexión y cada vez que tenemos un mensaje de intercepción de regreso, y así, esto debes tenerlo en cuenta. Si tienes una página que está realizando muchas llamadas de red, el controlador en el código estará hablando mucho entre sí, y así, esto podría ralentizar tus pruebas, pero si te da lo que necesitas para ciertas pruebas, probablemente valga la pena. Solo crearías tu respuesta HTTP, en este caso, sería la URL que estás buscando que necesita ser cambiada. Puedes agregar encabezados, puedes cambiar el cuerpo, incluso puedes hacer redireccionamientos si quieres, o si quieres insertar imágenes o cualquier cosa, puedes hacerlo, y luego, cuando suceda, podrás cambiar eso. Entonces, esto creo que es realmente genial. He visto muchas cosas geniales que la gente ha estado haciendo, y he estado jugando con ello bastante. Oh, lo siento. Y luego, finalmente, la cuadrícula de Selenium, que creo que mucha gente usa para ayudar a escalar sus pruebas, ha sido rediseñada para el futuro. Ya no hay llamadas HTTP extrañas y maravillosas que van de un nodo a otro. Se ha construido pensando en el futuro. Se están utilizando tecnologías modernas como buses de eventos y cosas así. También tiene observabilidad incorporada. Entonces, si has estado usando Jaeger o cosas así para poder ver cómo es tu código, podrás, utilizando la documentación del proyecto Selenium, integrarlo con tus pruebas. Así podrás ver cuando una prueba hizo algo en particular, cómo respondió internamente en tu sistema. Y podrás rastrearlo hasta el final. Entonces, si alguna vez te encuentras con esos errores extraños y maravillosos en el backend, con suerte, las nuevas herramientas de Selenium podrán solucionarlo contigo. Hay una mejor escalabilidad con las nuevas imágenes de Docker que se han creado y los scripts de Helm. Entonces, si quieres escalar rápidamente, puedes hacerlo. Y estos son mantenidos por el proyecto Selenium. Ahora, a veces esto va a ser mucho trabajo, pero esperamos haberlo hecho mucho más fácil para comenzar para que puedas escalar según tus necesidades. Estos deberían funcionar en todos tus proveedores de cloud como Azure o AWS y hacer lo que necesites. Mejoraremos esto a medida que avancemos. Entonces, si encuentras algún problema, por favor, informa cualquier error. Luego hay muchas pequeñas cosas que hemos hecho en segundo plano, solo para asegurarnos de que el código sea mejor. También hay muchas formas en que simplemente
QnA
Mensajes de Ayuda del Servidor de Selenium y Pruebas de Pestañas
Short description:
Si alguna vez te quedas atascado, la mejor manera de hacerlo es hacer que el servidor de Selenium imprima mensajes de ayuda en el camino. Estoy gratamente sorprendido con los resultados y me ayudará con el trabajo que quiero hacer en los próximos meses. Es importante reconocer que un dispositivo móvil real es más que simplemente reducir el tamaño de un navegador. Necesitamos probar múltiples pestañas abiertas y moverse entre ellas siempre se forzaba en una nueva ventana.
ayuda a los usuarios. Entonces, si alguna vez te quedas atascado, la mejor manera de hacerlo es hacer que el servidor de Selenium imprima mensajes de ayuda en el camino y podrás comenzar con suerte. Y con eso creo que he llegado al final de mi charla.
Espero con ansias sus preguntas, así que envíenlas. ¿Qué opinas de los resultados? Estoy gratamente sorprendido. Es lo que esperaba. Y porque, como, sé que mucha gente cuando piensa en móvil, piensa, como, reducir el tamaño de un navegador podría ser suficiente. Y por eso puse la palabra `real` allí, como un dispositivo móvil real. Y, espero que la gente note esa sutileza. Pero estoy gratamente sorprendido y me ayudará con parte del trabajo que quiero hacer en los próximos, como, tres o cuatro meses. Así que esto es increíble.
Eso es realmente agradable. Y estoy muy feliz de que hayamos podido ayudar de alguna manera. Y definitivamente, agregaría más información de que realmente, realmente necesitamos probar. Estoy de acuerdo contigo en que no es divertido cuando todos consideran el navegador solo una ventana que se abre fácilmente y no el navegador real que tenemos. Y sí, Nick Vick, sabes que soy un gran fan de los navegadores móviles. No puedo mentir. Ya tenemos algunas preguntas. Quiero recordarles a todos que pueden agregar sus preguntas en Discord. Y las tomaré tan pronto como las vea. Y comencemos con una. Leas se preguntaba...
Claro. ...de la charla. Entonces, podemos usar un flujo de prueba y probar múltiples pestañas abiertas. ¿Significa que si necesito probar algo que se abre en una nueva ventana y luego proceder a probar la nueva pestaña, funcionará? Sí. No ventana-pestaña, después de corregirlo. Sí, sí. Entonces, debería funcionar. Y una pestaña. Históricamente, con Selenium, si querías moverte entre pestañas, siempre se forzaba en una nueva ventana.
Manejo de Ventanas, Impresión y Desplazamiento Infinito
Short description:
La idea de una ventana en los navegadores puede ser confusa, pero Selenium 4.0 tiene como objetivo corregir conceptos erróneos comunes y facilitar el trabajo con ventanas y pestañas. En el pasado, la automatización tenía que ser creativa, como crear páginas completas con solo un botón. Selenium 4.0 respeta la impresión de medios y garantiza una mejor interoperabilidad entre navegadores. Solo imprime la parte actualmente visible de una página, evitando las complejidades del desplazamiento infinito. Las páginas infinitas, como las de Twitter, presentan interesantes desafíos de prueba.
Porque si has trabajado en navegadores, como, Yohanna, sabes esto, la idea de una ventana está sobrecargada. Porque una pestaña es una ventana. Una ventana de pestañas es una ventana. Y, por lo tanto, hay muchos conceptos erróneos comunes. Y, por lo tanto, se ha corregido mucho de eso. Esperemos que se ajuste al modelo mental de las personas en torno a las ventanas y el movimiento entre ventanas y la creación de nuevas ventanas para que puedan hacerlo mucho más fácilmente. Y, por lo tanto, puedes crear esos nuevos flujos de trabajo mucho mejor.
Oh, eso es útil. Y mencionaste que todo es una ventana. Recuerdo cuando comenzamos a hacer automation hace mucho tiempo cuando no teníamos herramientas adecuadas, crearíamos una página completa con un botón para asegurarnos de que nuestro navegador toque un botón. Solo cargábamos un botón. Oh, Dios mío. Hubo algunos días creativos de automation, sí. Sí.
Bien, pasando a la pregunta de Mark, y se trata de las páginas de impresión. ¿Es más bien una captura de pantalla o respeta la impresión de medios? Por lo tanto, debería respetar la impresión de medios, y si no lo hace, sería un error. Y, por lo tanto, la razón principal por la que se creó fue porque los proveedores de navegadores querían tener una mejor interoperabilidad entre cómo se ve una impresión en diferentes navegadores. Y así, de esa manera, como todos tus estilos y todo, la impresión de medios debería ser exactamente la misma. Y si no lo es, entonces hay problemas de interrupción, y por eso necesitaban solucionarlo. Entonces, espero que eso responda tu pregunta.
Sí, bueno, que Mark nos lo haga saber en Discord nuevamente. Y tenía una segunda pregunta. ¿Cómo maneja los desplazadores infinitos? ¿O solo muestra la parte actualmente visible? Por lo tanto, solo muestra la parte actualmente visible. Entonces, por ejemplo, si estás en Twitter y presionas imprimir, solo verás lo que se ha descargado y renderizado. No se seguirá desplazando continuamente. Por eso tampoco se utilizan las capturas de pantalla, porque en algunos navegadores intentamos hacer capturas de pantalla de toda la página. Y la forma en que lo hacemos es desplazando la pantalla y uniendo todo, y no es bonito, especialmente en una página de desplazamiento infinito, como Twitter. Por lo tanto, lo que ves es lo que obtienes en la página. Sí. Las páginas infinitas son realmente interesantes de probar cuando llegas al final.
Event-Driven Code and Basic Authentication
Short description:
El código orientado a eventos en Selenium 4 permite mejorar las pruebas de componentes, incluyendo notificaciones de mutación del DOM y manejo de mensajes de consola y excepciones de JavaScript. El objetivo es incorporar ideas para mejorar la calidad de la web. Si faltan casos de uso, se anima a los usuarios a informar errores o enviar mensajes al equipo. La autenticación básica con la llamada de conexión CDP actualmente solo funciona con navegadores Chromium.
Sí. No estoy seguro de si es interesante, pero sí. Sí, exactamente. Como interesante en el sentido de no divertido.
De acuerdo. El siguiente, código orientado a eventos. ¿También se pueden escuchar eventos de JavaScript de forma continua? Por ejemplo, eventos de frameworks de componentes, pensando en external.js aquí.
Sí. Esa es una de las principales áreas en las que intentamos centrarnos, mejorar cómo se pueden realizar pruebas de componentes. Porque Selenium siempre ha sido diseñado como ese marco subyacente y puedes construir sobre él según tus necesidades. Y lo que queremos hacer es probar un código orientado a eventos ligeramente mejor para diferentes áreas. Por eso tenemos mutaciones de registro. No mutación de registro, mutación del DOM. Entonces, si algo muta en el DOM, puedes recibir una notificación al respecto, lo cual es bueno para algunas pruebas y también te ayuda con la espera. Si quieres esperar a que ocurra un cambio específico en el DOM, puedes esperar por ello. Y si quieres mensajes de consola o excepciones de JavaScript, porque tienes todas estas cosas diferentes que pueden estar relacionadas. Entonces, si puedes hacer que el navegador emita todos estos mensajes, esperamos poder recopilarlos. Apreciamos que no hayamos abordado todos los casos de uso diferentes. Entonces, si tienes casos de uso nuevos, siéntete libre de informar errores o enviarme un mensaje y veremos qué podemos hacer. Porque estamos tratando de incorporar todas estas ideas para mejorarla para todos, para que puedas tener una web de mejor calidad. Ese es nuestro objetivo final, una web de mejor calidad.
INES ENVIDA SORRENTO En efecto. Y sé que trabajas mucho en esto y que estás presente en las redes sociales. Así que no dudes en ponerte en contacto con David y hacerle saber lo que encuentres allí. Y definitivamente probablemente les ayudará también. De acuerdo. Refector, Eric, creo que identifiqué el nombre, o tal vez solo una oración completa allí. Esos ejemplos, como la autenticación básica, con la llamada de conexión CDP, ¿funcionan con algún otro navegador que no sea Chrome o Chromium?
DERMOT HAZLETT Entonces, por el momento, solo funciona con navegadores Chromium. El equipo de Mozilla está tratando de agregar nuevas funciones a medida que avanzamos. No creo que la autenticación básica funcione allí todavía, porque depende de un CDP
Differences between Fetch and Selenium
Short description:
Existen pequeñas diferencias entre fetch en el DOM y Selenium. Los navegadores están trabajando en mejorar esto, especialmente Mozilla, Safari, WebKit y colaboradores como Egalia. El objetivo es utilizar navegadores reales en lugar de manipulados.
dominio llamado fetch. Así que no quiero que se confunda con fetch en el DOM. Estas son ideas ligeramente diferentes. Nuevamente, mezclar el mismo nombre en todas partes es lo que los navegadores hacen bien. Y por eso, no lo han implementado completamente, pero sé que el equipo de Mozilla está trabajando bastante extensamente en mejorar esto. Y sé que en el futuro, Safari y WebKit y personas como Egalia, que contribuyen a WebKits, están buscando cómo pueden mejorar WebKit para algunas de estas cosas. Entonces, cuando sea posible, vamos a utilizar navegadores reales en lugar de navegadores que hemos manipulado en el camino, como algunos de los
Selenium 4 Mobile Testing and Cloud Services
Short description:
La prueba móvil de Selenium 4 se puede utilizar con servicios en la nube como Sauce Labs y Browser Stack, pero también es posible interactuar con Firefox en Android localmente utilizando un dispositivo real o un emulador. Se están realizando mejoras en la documentación y, aunque los servicios en la nube ofrecen comodidad con múltiples dispositivos, no son esenciales.
frameworks hacen. Me rompió el corazón estar allí, pero está bien. Dijiste que estás trabajando en ello, lo tomaré como una esperanza. Oh, sí. Es mi antiguo equipo el que lo está haciendo y están haciendo un trabajo fantástico. Oh, eso es agradable. Eso es aún más emocionante. ¿La prueba móvil de Selenium 4 testing solo se utiliza con servicios en la nube como Sauce Labs y Browser Stack? Lo siento, ¿podrías repetir esa pregunta de nuevo? ¿La prueba móvil de Selenium 4 testing solo se utiliza con servicios en la nube como Sauce Labs? Entonces, no puedo hablar por Sauce Labs. Obviamente, no sé en qué punto están en su ciclo de lanzamiento. Pero Selenium 4 debería estar disponible en Browser Stack. Puedes usarlo allí. Sin embargo, después de haber trabajado en el lanzamiento de Selenium 4, Mozilla estaba muy interesado en mejorar la forma en que interactúas con Firefox en Android. Y así, eso debería manejarse, puedes hacerlo localmente si tuvieras un dispositivo real o si tuvieras un emulador, solo tienes que decirle a Gecko Driver aproximadamente a dónde ir y debería hacerlo. Aprecio que necesitemos mejorar la documentación en este aspecto, y por eso, de donde venía mi pregunta, es que, como las partes iniciales están ahí, pero vamos a ir mejorándolas en el camino. Los servicios en la nube facilitan la vida porque puedes obtener diferentes dispositivos, pero no necesariamente los necesitas. De acuerdo, estaba mirando la siguiente pregunta. Es de IEUSA. No estoy seguro si estás probado allí con el ID o no, pero la pregunta es, ¿se puede automatizar un sitio web en el escritorio y funcionaría directamente en el navegador móvil? Sí, a veces. Una de las cosas clave es la forma en que funcionan los motores de escritorio y los motores móviles . Vengo de Mozilla, y Gecko en dispositivos móviles y Gecko en dispositivos de escritorio son como dos bestias diferentes. Gran parte del código es muy similar, pero cuando se compila, las cosas se eliminan y cosas así. Por lo tanto, puede haber diferencias. También puede haber diferencias en el motor JavaScript, y luego también tienes, como, cuando, como si el navegador se durmiera, ya sabes, si acabas de cerrar la página por un segundo para, como, pasar a otra aplicación y luego volver. Creo que tienes todas estas cosas diferentes que pueden suceder dentro de un espacio móvil. Sí, los comportamientos son muy diferentes. Y no creo que suficiente gente lo aprecie, porque, como, pero es un problema difícil. Pero, como, ya sabes, Joanna, como, el móvil es muy, muy diferente. Y luego, como, las compañías móviles, o no las compañías móviles, los sitios web te darán diferentes sitios web dependiendo de tu dispositivo móvil. Y así, como, esa es la otra parte, es que podrías ir, oh, sí, estoy suplantando esto, pero es posible que no lo suplantes correctamente, y luego obtienes algo muy extraño. Así que esto es como dispositivos reales, o pruebas reales para cosas. Oh, cierto. Y, como mencionaste, la navegación móvil, como, creo que tanto los desarrolladores, especialmente aquellos con web, no nativa móvil, y los usuarios, siempre están entre esto, ¿espero que el escritorio web, todas las cosas que suceden allí, de la misma manera en el móvil, o simplemente acepto el cambio y es algo nuevo, y debo esperar un nuevo comportamiento, una nueva acción, un nuevo trabajo para nosotros. Porque al principio, todo era como en el escritorio. Y esperábamos todo en el escritorio, tratábamos todo, oh, esto no funciona. Y era como, ¿realmente necesitamos esto en el móvil, porque no vamos a usarlo, tenemos diferentes comportamientos, diferentes acciones. Y solo tienes que aceptar que el móvil es diferente, en efecto. Sí. Muchas gracias por estar con nosotros esta noche.
Cecilia Martinez, a technical account manager at Cypress, discusses network requests in Cypress and demonstrates commands like cydot request and SCI.INTERCEPT. She also explains dynamic matching and aliasing, network stubbing, and the pros and cons of using real server responses versus stubbing. The talk covers logging request responses, testing front-end and backend API, handling list length and DOM traversal, lazy loading, and provides resources for beginners to learn Cypress.
Cypress is a powerful tool for end-to-end testing and API testing. It provides instant feedback on test errors and allows tests to be run inside the browser. Cypress enables testing at both the application and network layers, making it easier to reach different edge cases. With features like AppActions and component testing, Cypress allows for comprehensive testing of individual components and the entire application. Join the workshops to learn more about full circle testing with Cypress.
This Talk introduces Test Effective Development, a new approach to testing that aims to make companies more cost-effective. The speaker shares their personal journey of improving code quality and reducing bugs through smarter testing strategies. They discuss the importance of finding a balance between testing confidence and efficiency and introduce the concepts of isolated and integrated testing. The speaker also suggests different testing strategies based on the size of the application and emphasizes the need to choose cost-effective testing approaches based on the specific project requirements.
The Playwright Test Runner is a cross-browser web testing framework that allows you to write tests using just a few lines of code. It supports features like parallel test execution, device emulation, and different reporters for customized output. Code-Gen is a new feature that generates code to interact with web pages. Playwright Tracing provides a powerful tool for debugging and analyzing test actions, with the ability to explore trace files using TraceViewer. Overall, Playwright Test offers installation, test authoring, debugging, and post-mortem debugging capabilities.
Playwright is a reliable end-to-end testing tool for modern web apps that provides one API, full isolation, fast execution, and supports multiple languages. It offers features like auto-weighting, retrying assertions, seamless testing of iframes and shadow DOM, test isolation, parallelism, and scalability. Playwright provides tools like VS Code extension, UiMode, and Trace Viewer for writing, debugging, and running tests. Effective tests prioritize user-facing attributes, use playwright locators and assertions, and avoid testing third-party dependencies. Playwright simplifies testing by generating tests, providing code generation and UI mode, and allows for easy running and debugging of tests. It helps in fixing failed tests and analyzing DOM changes, fixing locator mismatches, and scaling tests. Playwright is open source, free, and continuously growing.
La Biblioteca de Pruebas de React es un gran marco para las pruebas de componentes de React porque responde muchas preguntas por ti, por lo que no necesitas preocuparte por esas preguntas. Pero eso no significa que las pruebas sean fáciles. Todavía hay muchas preguntas que tienes que resolver por ti mismo: ¿Cuántas pruebas de componentes debes escribir vs pruebas de extremo a extremo o pruebas de unidad de nivel inferior? ¿Cómo puedes probar una cierta línea de código que es difícil de probar? ¿Y qué se supone que debes hacer con esa persistente advertencia de act()? En esta masterclass de tres horas, presentaremos la Biblioteca de Pruebas de React junto con un modelo mental de cómo pensar en el diseño de tus pruebas de componentes. Este modelo mental te ayudará a ver cómo probar cada bit de lógica, si debes o no simular dependencias, y ayudará a mejorar el diseño de tus componentes. Te irás con las herramientas, técnicas y principios que necesitas para implementar pruebas de componentes de bajo costo y alto valor. Tabla de contenidos- Los diferentes tipos de pruebas de aplicaciones de React, y dónde encajan las pruebas de componentes- Un modelo mental para pensar en las entradas y salidas de los componentes que pruebas- Opciones para seleccionar elementos DOM para verificar e interactuar con ellos- El valor de los mocks y por qué no deben evitarse- Los desafíos con la asincronía en las pruebas de RTL y cómo manejarlos Requisitos previos- Familiaridad con la construcción de aplicaciones con React- Experiencia básica escribiendo pruebas automatizadas con Jest u otro marco de pruebas unitarias- No necesitas ninguna experiencia con la Biblioteca de Pruebas de React- Configuración de la máquina: Node LTS, Yarn
La web ha evolucionado. Finalmente, también lo ha hecho el testing. Cypress es una herramienta de testing moderna que responde a las necesidades de testing de las aplicaciones web modernas. Ha ganado mucha popularidad en los últimos años, obteniendo reconocimiento a nivel mundial. Si has estado esperando aprender Cypress, ¡no esperes más! Filip Hric te guiará a través de los primeros pasos sobre cómo empezar a usar Cypress y configurar tu propio proyecto. La buena noticia es que aprender Cypress es increíblemente fácil. Escribirás tu primer test en poco tiempo y luego descubrirás cómo escribir un test de extremo a extremo completo para una aplicación web moderna. Aprenderás conceptos fundamentales como la capacidad de reintentar. Descubre cómo trabajar e interactuar con tu aplicación y aprende cómo combinar pruebas de API y de UI. A lo largo de todo este masterclass, escribiremos código y realizaremos ejercicios prácticos. Saldrás con una experiencia práctica que podrás aplicar a tu propio proyecto.
A diferencia de las pruebas unitarias, las pruebas de extremo a extremo buscan interactuar con su aplicación tal como lo haría un usuario real. Y como todos sabemos, puede ser bastante desafiante. Especialmente cuando hablamos de aplicaciones móviles. Las pruebas dependen de muchas condiciones y se consideran lentas e inestables. Por otro lado, las pruebas de extremo a extremo pueden dar la mayor confianza de que su aplicación está funcionando. Y si se hace correctamente, puede convertirse en una herramienta increíble para aumentar la velocidad del desarrollador. Detox es un marco de pruebas de extremo a extremo en caja gris para aplicaciones móviles. Desarrollado por Wix para resolver el problema de la lentitud e inestabilidad y utilizado por React Native en sí como su herramienta de pruebas E2E. Únete a mí en esta masterclass para aprender cómo hacer que tus pruebas de extremo a extremo móviles con Detox sean excelentes. Prerrequisitos- iOS/Android: MacOS Catalina o más reciente- Solo Android: Linux- Instalar antes de la masterclass
En el panorama siempre en evolución del desarrollo de software, garantizar la fiabilidad y funcionalidad de las API se ha vuelto primordial. "Pruebas de API con Postman" es una masterclass completa diseñada para equipar a los participantes con los conocimientos y habilidades necesarios para sobresalir en las pruebas de API utilizando Postman, una herramienta poderosa ampliamente adoptada por profesionales en el campo. Esta masterclass profundiza en los fundamentos de las pruebas de API, avanza a técnicas de prueba avanzadas y explora la automatización, las pruebas de rendimiento y el soporte multiprotocolo, proporcionando a los asistentes una comprensión holística de las pruebas de API con Postman. Únete a nosotros para esta masterclass para desbloquear todo el potencial de Postman para las pruebas de API, agilizar tus procesos de prueba y mejorar la calidad y fiabilidad de tu software. Ya seas un principiante o un probador experimentado, esta masterclass te equipará con las habilidades necesarias para sobresalir en las pruebas de API con Postman.
Si encontrar errores en tu proyecto frontend es como buscar una aguja en un pajar de código, entonces el monitoreo de errores de Sentry puede ser tu detector de metales. Aprende los conceptos básicos del monitoreo de errores con Sentry. Ya sea que estés ejecutando un proyecto de React, Angular, Vue, o simplemente JavaScript “vainilla”, mira cómo Sentry puede ayudarte a encontrar el quién, qué, cuándo y dónde detrás de los errores en tu proyecto frontend. Nivel de la masterclass: Intermedio
Este masterclass te enseñará los conceptos básicos de cómo escribir pruebas de extremo a extremo utilizando Cypress Test Runner. Cubriremos la escritura de pruebas, abarcando todas las características de la aplicación, estructurando las pruebas, interceptando solicitudes de red y configurando los datos del backend. Cualquier persona que conozca el lenguaje de programación JavaScript y tenga NPM instalado podrá seguir el masterclass.
Comments