Ao escrever um aplicativo Web Flutter, tento aproveitar uma estrutura de teste de interface da Web baseada no Selenium. Infelizmente, não consigo identificar um elemento HTML que representa um determinado widget de vibração por seu atributo id ou nome. A chave do widget não está presente no documento HTML.
Eu consigo usar o conteúdo do widget de texto para encontrar a parte de texto de um widget e encontrar o elemento pai que representa o widget que contém o texto, mas isso falha em imagens, telas etc.
Existe algum mecanismo que eu possa usar para adicionar id / nome (ou qualquer outro meio de identificação) à sopa de tags HTML?
Usando JavaScript, existe uma maneira de percorrer a árvore interna do widget lógico e a partir daí concluir o elemento HTML representativo (por exemplo, por sua localização e tamanho)?
fonte
Respostas:
Eu não acho que seja a maneira correta de usar qualquer tipo de estrutura de teste Selenium para o Flutter Web.
O motivo disso é que você (como desenvolvedor da Web) não tem controle sobre a aparência do DOM gerado. O que significa que você não pode usar o XPath e outros meios para selecionar elementos.
Suponho que a única maneira de testar aplicativos Flutter (incluindo o Flutter Web) seja usar o Flutter Driver: https://api.flutter.dev/flutter/flutter_driver/flutter_driver-library.html
fonte
Atualmente, você não pode adicionar consistentemente informações de identificação à renderização de widgets em diferentes dispositivos.
Para atingir seu objetivo, no entanto, você pode usar o Flutter Driver. O pacote Dart flutter_driver foi projetado especificamente para permitir o teste da interface do usuário dos aplicativos Flutter e fornece uma API para os aplicativos em dispositivos reais, simuladores ou emuladores. Para começar o teste do Flutter Driver, você precisa:
Para encontrar um widget Flutter, você pode usar SerializableFinder, por exemplo:
Para mais informações, confira:
fonte