Selenium 4: ¡Novedades y cómo puedes usarlo!

Rate this content
Bookmark

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.

32 min
19 Nov, 2021

Video Summary and Transcription

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.

Available in English

1. Introducción a Selenium 4.0

Short description:

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.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

TestJS Summit 2021TestJS Summit 2021
33 min
Network Requests with Cypress
Top Content
Whether you're testing your UI or API, Cypress gives you all the tools needed to work with and manage network requests. This intermediate-level task demonstrates how to use the cy.request and cy.intercept commands to execute, spy on, and stub network requests while testing your application in the browser. Learn how the commands work as well as use cases for each, including best practices for testing and mocking your network requests.
TestJS Summit 2021TestJS Summit 2021
38 min
Testing Pyramid Makes Little Sense, What We Can Use Instead
Top Content
Featured Video
The testing pyramid - the canonical shape of tests that defined what types of tests we need to write to make sure the app works - is ... obsolete. In this presentation, Roman Sandler and Gleb Bahmutov argue what the testing shape works better for today's web applications.
TestJS Summit 2022TestJS Summit 2022
27 min
Full-Circle Testing With Cypress
Top Content
Cypress has taken the world by storm by brining an easy to use tool for end to end testing. It’s capabilities have proven to be be useful for creating stable tests for frontend applications. But end to end testing is just a small part of testing efforts. What about your API? What about your components? Well, in my talk I would like to show you how we can start with end-to-end tests, go deeper with component testing and then move up to testing our API, circ
TestJS Summit 2021TestJS Summit 2021
31 min
Test Effective Development
Top Content
Developers want to sleep tight knowing they didn't break production. Companies want to be efficient in order to meet their customer needs faster and to gain competitive advantage sooner. We ALL want to be cost effective... or shall I say... TEST EFFECTIVE!But how do we do that?Are the "unit" and "integration" terminology serves us right?Or is it time for a change? When should we use either strategy to maximize our "test effectiveness"?In this talk I'll show you a brand new way to think about cost effective testing with new strategies and new testing terms!It’s time to go DEEPER!
TestJS Summit 2023TestJS Summit 2023
21 min
Everyone Can Easily Write Tests
Let’s take a look at how Playwright can help you get your end to end tests written with tools like Codegen that generate tests on user interaction. Let’s explore UI mode for a better developer experience and then go over some tips to make sure you don’t have flakey tests. Then let’s talk about how to get your tests up and running on CI, debugging on CI and scaling using shards.

Workshops on related topic

React Summit 2023React Summit 2023
151 min
Designing Effective Tests With React Testing Library
Top Content
Featured Workshop
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests.
Table of contents- The different kinds of React application tests, and where component tests fit in- A mental model for thinking about the inputs and outputs of the components you test- Options for selecting DOM elements to verify and interact with them- The value of mocks and why they shouldn’t be avoided- The challenges with asynchrony in RTL tests and how to handle them
Prerequisites- Familiarity with building applications with React- Basic experience writing automated tests with Jest or another unit testing framework- You do not need any experience with React Testing Library- Machine setup: Node LTS, Yarn
TestJS Summit 2022TestJS Summit 2022
146 min
How to Start With Cypress
Featured WorkshopFree
The web has evolved. Finally, testing has also. Cypress is a modern testing tool that answers the testing needs of modern web applications. It has been gaining a lot of traction in the last couple of years, gaining worldwide popularity. If you have been waiting to learn Cypress, wait no more! Filip Hric will guide you through the first steps on how to start using Cypress and set up a project on your own. The good news is, learning Cypress is incredibly easy. You'll write your first test in no time, and then you'll discover how to write a full end-to-end test for a modern web application. You'll learn the core concepts like retry-ability. Discover how to work and interact with your application and learn how to combine API and UI tests. Throughout this whole workshop, we will write code and do practical exercises. You will leave with a hands-on experience that you can translate to your own project.
React Summit 2022React Summit 2022
117 min
Detox 101: How to write stable end-to-end tests for your React Native application
Top Content
WorkshopFree
Compared to unit testing, end-to-end testing aims to interact with your application just like a real user. And as we all know it can be pretty challenging. Especially when we talk about Mobile applications.
Tests rely on many conditions and are considered to be slow and flaky. On the other hand - end-to-end tests can give the greatest confidence that your app is working. And if done right - can become an amazing tool for boosting developer velocity.
Detox is a gray-box end-to-end testing framework for mobile apps. Developed by Wix to solve the problem of slowness and flakiness and used by React Native itself as its E2E testing tool.
Join me on this workshop to learn how to make your mobile end-to-end tests with Detox rock.
Prerequisites- iOS/Android: MacOS Catalina or newer- Android only: Linux- Install before the workshop
TestJS Summit 2023TestJS Summit 2023
48 min
API Testing with Postman Workshop
Top Content
WorkshopFree
In the ever-evolving landscape of software development, ensuring the reliability and functionality of APIs has become paramount. "API Testing with Postman" is a comprehensive workshop designed to equip participants with the knowledge and skills needed to excel in API testing using Postman, a powerful tool widely adopted by professionals in the field. This workshop delves into the fundamentals of API testing, progresses to advanced testing techniques, and explores automation, performance testing, and multi-protocol support, providing attendees with a holistic understanding of API testing with Postman.
1. Welcome to Postman- Explaining the Postman User Interface (UI)2. Workspace and Collections Collaboration- Understanding Workspaces and their role in collaboration- Exploring the concept of Collections for organizing and executing API requests3. Introduction to API Testing- Covering the basics of API testing and its significance4. Variable Management- Managing environment, global, and collection variables- Utilizing scripting snippets for dynamic data5. Building Testing Workflows- Creating effective testing workflows for comprehensive testing- Utilizing the Collection Runner for test execution- Introduction to Postbot for automated testing6. Advanced Testing- Contract Testing for ensuring API contracts- Using Mock Servers for effective testing- Maximizing productivity with Collection/Workspace templates- Integration Testing and Regression Testing strategies7. Automation with Postman- Leveraging the Postman CLI for automation- Scheduled Runs for regular testing- Integrating Postman into CI/CD pipelines8. Performance Testing- Demonstrating performance testing capabilities (showing the desktop client)- Synchronizing tests with VS Code for streamlined development9. Exploring Advanced Features - Working with Multiple Protocols: GraphQL, gRPC, and more
Join us for this workshop to unlock the full potential of Postman for API testing, streamline your testing processes, and enhance the quality and reliability of your software. Whether you're a beginner or an experienced tester, this workshop will equip you with the skills needed to excel in API testing with Postman.
TestJS Summit - January, 2021TestJS Summit - January, 2021
173 min
Testing Web Applications Using Cypress
WorkshopFree
This workshop will teach you the basics of writing useful end-to-end tests using Cypress Test Runner.
We will cover writing tests, covering every application feature, structuring tests, intercepting network requests, and setting up the backend data.
Anyone who knows JavaScript programming language and has NPM installed would be able to follow along.
TestJS Summit 2023TestJS Summit 2023
148 min
Best Practices for Writing and Debugging Cypress Tests
Workshop
You probably know the story. You’ve created a couple of tests, and since you are using Cypress, you’ve done this pretty quickly. Seems like nothing is stopping you, but then – failed test. It wasn’t the app, wasn’t an error, the test was… flaky? Well yes. Test design is important no matter what tool you will use, Cypress included. The good news is that Cypress has a couple of tools behind its belt that can help you out. Join me on my workshop, where I’ll guide you away from the valley of anti-patterns into the fields of evergreen, stable tests. We’ll talk about common mistakes when writing your test as well as debug and unveil underlying problems. All with the goal of avoiding flakiness, and designing stable test.