Inspecionando Elementos no app iOS com MacacaJs
Muitas pessoas que trabalham com QA especificamente no mundo mobile encontram um certo problema na hora de inspecionar alguns elementos, devido a descontinuação de ferramentas como foi o caso do UIAutomation que era o framework principal no Appium para inspeção de elementos.
Com isso, novas soluções tendem a aparecer e principalmente quando são open source que é o caso do macacajs. O macaca é uma solução para inspecionar elementos de tela em aplicativos híbridos, nativos e web.
E agora por onde devo começar? Lembrando que aqui vamos falar apenas de app iOS, blz?
Primeiramente para rodar o macaca você deve ter instalado o node.js e o npm. Se você tiver o brew instalado na sua máquina, tudo irá ficar mais fácil e passar os seguintes comandos na linha de comando :
brew install node
logo após vamos checar se foi instalado?
npm? O npm (node package manager) é o gerenciador de dependências de Node, assim como o pip de python e gradle de Java.
Então, até aqui tranquilo?
Lembrete: é importante ter o XCode instalado, caso não tenha, pode ser encontrado Aqui
E precisaremos também do ios_webkit_debug_proxy;
brew install ios-webkit-debug-proxy
Agora vamos instalar o macaca cli.
npm i -g macaca-cli macaca-ios
Sucesso até aqui? Calma estamos quase lá.
Agora é a vez de instalar o inspector;
npm i app-inspector -g
E pra finalizar vamos verificar se tá tudo ok?
macaca doctor
Tudo verdinho? Ufa!! até que enfim, vamos rodar?
simples, rápido e fácil…
app-inspector -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
…Mas e esses xxx todo o que significa?
Significa que é ai onde vai passar o ID do teu simulador iOS, e como pegar? vamos lá.
xcrun simctl list
Esse comando lista todos os simuladores disponíveis. Para achar um simulador específico e que já esteja inicializado só acrescentar o parâmetro grep 'Booted'.
xcrun simctl list | grep 'Booted'
Agora é só escolher um e executar:
e.g.
Depois que executou o comando acima, vai abrir o navegador com a tela do simulador iOS.
Basicamente funciona como o uiautomatorviewer, só seleciona o ícone e as informações irão aparecer no lado direto. Também é possível navegar pela árvore na coluna do meio.
Alguns pontos a ressaltar:
- Podemos usar também o ARC (Appium Ruby Console) como uma segunda alternativa para inspeção de elementos.
- Uma dica como boa prática, é sempre legal bater um papo com os Devs do time para colocarem id e/ou names nos elementos, assim evitamos usar os temidos xpaths gerados pelo Macaca, assim ficando mais performático.
Espero ter ajudado, qualquer dúvida ou sugestão deixem no comentário que vou fazer o máximo para responder tudo o mais rápido possível :).