EmuloMobile

Como agrupar passos de uma macro Android com Ação Composta

Use uma Ação Composta no EmuloMobile para colocar vários passos da macro sob uma condição, manter a ordem visível e testar o bloco.

Por Sertta 6 min de leitura
agrupar passos de macro Android Ação Composta Android bloco condicional em macro tutorial EmuloMobile EmuloMobile

Repetir a mesma condição em vários passos consecutivos deixa a macro mais difícil de ler e manter. Se três ações fazem parte da mesma resposta, mudar o gatilho visual não deveria exigir a edição de três cards separados.

O EmuloMobile oferece a Ação Composta para essa estrutura. Ela guarda subações em uma ordem explícita e pode aplicar uma condição ao bloco completo. Quando a condição do pai passa, os filhos são considerados em sequência. Quando ela não passa, nenhum deles é executado.

A Ação Composta organiza passos dentro da mesma macro. Se você precisa passar a execução de uma macro completa para outra, use o guia sobre como encadear macros Android.

Use um bloco quando as ações respondem ao mesmo evento

Comece com uma frase que descreva a decisão: quando este estado aparecer, execute estas ações nesta ordem.

Por exemplo, quando um painel de conclusão aparece, a macro pode precisar:

  1. salvar uma captura do estado concluído;
  2. tocar em Concluir;
  3. voltar para a tela anterior.

Esses passos respondem ao mesmo evento visual. Um bloco pai é mais fácil de entender do que três cards de primeiro nível sem uma fronteira comum. A condição pertence ao painel de conclusão; os filhos descrevem a resposta.

Mantenha as ações separadas quando elas tiverem gatilhos diferentes, precisarem continuar visíveis de forma independente na sequência principal ou não puderem ser ignoradas juntas. A Ação Composta é uma fronteira estrutural, não apenas uma forma de encurtar o construtor.

Entenda a condição do pai antes de montar o bloco

As condições associadas à Ação Composta protegem o bloco completo. O EmuloMobile avalia esse gate antes de entrar na lista de filhos.

Isso cria dois resultados claros:

  • se a condição do pai passa, o EmuloMobile processa os filhos ativos na ordem exibida;
  • se a condição do pai falha, o motor ignora a Ação Composta e não avalia nem executa os filhos naquela passagem.

Cada filho ainda pode ter sua própria condição. Use esse segundo nível somente para uma regra específica da subação. O pai pode confirmar que o painel de conclusão está aberto, por exemplo, enquanto o filho Tocar no texto verifica se o rótulo Concluir está realmente presente.

Não copie a condição do pai em cada filho. Isso elimina a principal vantagem do bloco e cria vários ajustes que podem ficar diferentes com o tempo.

Como criar uma Ação Composta no EmuloMobile

Abra a automação no construtor e escolha o ponto da sequência onde a resposta agrupada deve ficar.

1. Adicione o bloco vazio

Selecione Adicionar ação, abra a categoria personalizada e escolha Ação Composta. O EmuloMobile cria um card vazio diretamente no fluxo.

Use o campo de anotação para descrever o resultado, como “Registrar conclusão e fechar painel”. Uma anotação orientada ao resultado ajuda mais do que repetir o tipo da ação.

2. Adicione as subações na ordem de execução

Dentro do card da Ação Composta, selecione Adicionar subação e crie o primeiro filho. Repita para os demais passos.

No exemplo da conclusão, adicione:

  1. Capturar tela;
  2. Tocar no texto configurado para Concluir;
  3. Botão do sistema configurado como Voltar, somente se o retorno fizer parte da resposta planejada.

Os filhos aparecem como cards aninhados. Use os controles de subir e descer para organizar a sequência. Não dependa da ordem em que você lembrou dos passos: revise a ordem como uma interação observável com o app de destino.

3. Adicione a condição compartilhada ao pai

Na área de condições ao final do card da Ação Composta, adicione o sinal que identifica o evento. Pode ser texto, imagem, cor, contagem ou variável aceita pelo construtor.

Escolha o sinal estável mais específico. Se houver um título de conclusão único, uma condição de texto pode bastar. Se o título também aparece em outras telas, combine outro sinal ou use uma região de detecção limitada. O guia sobre tocar em texto com OCR explica como as regiões reduzem correspondências ambíguas.

4. Adicione condições nos filhos somente quando elas mudarem a decisão

Uma condição do filho deve responder a uma pergunta mais restrita que a condição do pai. Alguns exemplos:

  • fazer a captura somente quando um selo de sucesso estiver visível;
  • tocar em Concluir somente quando esse rótulo estiver presente;
  • executar uma limpeza somente quando uma variável booleana for verdadeira.

Existe uma regra de sequência importante dentro do bloco: se um filho com condição não passar, os filhos seguintes sem condição própria são ignorados até o motor encontrar outro filho com uma condição explícita. Isso evita que uma continuação sem proteção rode depois que seu pré-requisito esperado falhou.

Desenhe cada trecho de filhos como uma cadeia pequena. Se uma subação posterior precisa tomar uma decisão independente, dê a ela uma condição própria em vez de presumir que o passo anterior passou.

5. Salve a automação explicitamente

A criação do bloco, a reordenação dos filhos e a edição das condições ficam pendentes no construtor até você selecionar Salvar. Salve antes de sair do editor ou preparar uma execução completa.

Exemplo: registre um resultado antes de dispensá-lo

Considere um app que mostra um painel de resultado depois de um processo repetitivo. Você quer guardar uma evidência do resultado e, depois, quer que a macro feche o painel e retorne.

Monte uma Ação Composta com uma condição no pai que identifique o painel. Coloque Capturar tela em primeiro lugar, Tocar no texto: Concluir em segundo e a navegação por último.

A ordem importa. Se a macro tocar em Concluir antes da captura, o estado que deveria ser guardado pode desaparecer. Se a condição do painel ficar apenas no primeiro filho, as ações posteriores sem proteção ficam mais difíceis de interpretar quando o fluxo for editado. A condição do pai deixa a fronteira visível: toda essa resposta pertence ao painel de resultado.

Para entender o comportamento do arquivo e o acesso pela galeria, consulte o guia sobre capturas de tela automáticas em uma macro Android.

Teste a condição, os filhos e o bloco completo

Faça o teste em três níveis:

  1. Teste a condição do pai em uma tela onde ela deve passar e em outra onde não deve.
  2. Teste cada filho no estado exato da tela que ele espera.
  3. Teste a Ação Composta desde o início do evento e observe a ordem completa.

Use dados de teste que não causem prejuízo quando um filho puder enviar, confirmar ou sair de uma tela. Uma subação que funciona sozinha ainda pode receber o estado errado depois que a anterior altera a interface.

Se o bloco falhar, procure a primeira diferença observável. O guia sobre como testar uma macro Android passo a passo traz um método para isolar essa fronteira sem apagar passos configurados.

Mantenha o bloco pequeno o bastante para ser explicado

Uma Ação Composta útil representa um evento e uma resposta. Se o bloco precisa de uma anotação longa para explicar preparação, trabalho principal, recuperação e limpeza sem relação direta, divida o fluxo em unidades mais claras.

O construtor permite aninhar Ações Compostas, mas a profundidade deve representar uma hierarquia real. Prefira um bloco raso que possa ser lido na tela. Use condições nos filhos para exceções locais e use outra macro quando a rotina tiver começo, objetivo e ciclo de teste próprios.

Faça uma decisão liberar uma resposta coerente

A Ação Composta transforma um gatilho repetido em uma fronteira visível: uma condição no pai, um conjunto ordenado de filhos e verificações específicas opcionais em cada subação. Essa estrutura reduz configurações duplicadas e facilita entender o que deve acontecer quando o estado esperado aparece.

Conheça o EmuloMobile e monte blocos condicionais diretamente no Android.