Al escribir una aplicación web de Flutter, trato de aprovechar un marco de Web-UI-Testing basado en Selenium. Lamentablemente, no identifico un elemento HTML que represente un cierto widget de aleteo por su id o atributo de nombre. La clave del widget no está presente en el documento HTML.
Me las arreglo para usar el contenido del widget de texto para encontrar la parte de texto de un widget y puedo encontrar su elemento principal que representa el widget que contiene el texto, pero esto falla para las imágenes, el lienzo, etc.
¿Hay algún mecanismo que pueda usar para agregar identificación / nombre (o cualquier otro medio de identificación) a la sopa de etiquetas HTML?
Usando JavaScript, ¿hay alguna manera de atravesar el árbol de widgets lógicos internos y de allí concluir el elemento HTML representativo (por ejemplo, por su ubicación y tamaño)?
fuente
Respuestas:
No creo que sea la forma correcta de utilizar ningún tipo de marco de prueba Selenium para Flutter Web.
La razón de esto es que usted (como desarrollador web) no tiene control sobre cómo se ve el DOM generado. Lo que significa que no puede usar XPath y otros medios para seleccionar elementos.
Supongo que la única forma de probar las aplicaciones de Flutter (incluida Flutter Web) es usando Flutter Driver: https://api.flutter.dev/flutter/flutter_driver/flutter_driver-library.html
fuente
Actualmente no puede agregar constantemente información de identificación a la representación de widgets en diferentes dispositivos.
Sin embargo, para lograr su objetivo, puede usar Flutter Driver. El paquete Dart flutter_driver está específicamente diseñado para permitir la prueba de interfaz de usuario de aplicaciones Flutter y proporciona una API para las aplicaciones en dispositivos reales, simuladores o emuladores. Para comenzar con las pruebas de Flutter Driver necesita:
Para encontrar un widget de Flutter puede usar SerializableFinder, por ejemplo:
Para obtener más información, consulte:
fuente