Blog > Appium - Identificando o tamanho de tela do dispositivo

29/mar

Atualmente contamos com diversos dispositivos, cada um com sua característica específica de hardware e software (sim de software). Um dos itens referente a característica do hardware que pode impactar o desenvolvimento é o tamanho da tela para apps de diversas finalidades. Vamos aprender como obter o tamanho de tela e um exemplo de onde esta informação pode ser útil.

 

Introdução

Atualmente contamos com diversos dispositivos, cada um com sua característica específica de hardware e software (sim de software).
Um dos itens referente a característica do hardware que pode impactar o desenvolvimento é o tamanho da tela para apps de diversas finalidades.
Vamos aprender como obter o tamanho de tela e um exemplo de onde esta informação pode ser útil.

Para que pode servir?

Um dos melhores artifícios para pegar a dimensão (x e y) é o swipe.
Para quem não está familiarizado com o termo swipe é o gesto que fazemos com um dedo para uma direção, geralmente para cima, para baixo, para esquerda ou para direita.

Um exemplo clássico é que fazemos um swipe para baixo no topo de um dispositivo Android para abrir as notificações.

Como fazer?

Para descobrir as dimensões da tela do dispositivo é necessário obter o tamanho da janela, que retorna uma Dimension (do pacote org.openqa.selenium).
O código abaixo ontem a dimensão e já passa para a respectiva classe.

Agora, com a classe Dimension, podemos ter acesso a altura e largura do dispositivo através dos métodos:

  • Altura: getHeight()
  • Largura: getWidth()

Vale também salientar que:

  • Altura é igual eixo x
  • Largura é igual ao eixo y

Isso porque no Android coordenadas são tratadas como x e y.

O código abaixo apresenta um exemplo:

App de exemplo

O app de exemplo mostra informações sobre a tela do dispositivo, tais como altura, largura e densidade.
Você pode obter o app de exemplo neste link.
No script de exemplo é feita uma validação da altura e largura que é apresentado na tela da app versus a altura e largura do dispositivo que está recebendo o teste.

Note que passamos o valor de altura (height) e largura (width) para String através do método valueOf, isso porque queremos comparar com a altura e largura que será apresentado na tela com o assertEquals.

 

Bônus: Se eu quiser usar as coordenadas da tela para efetuar o Swipe, como eu faço?

O driver possui um método de swipe que aceita diversas coordenadas:

  • startx: coordenada x (altura) de onde será iniciado o swipe
  • starty: coordenada y (largura) de onde será iniciado o swipe
  • endx: coordenada x (altura) onde terminará o swipe
  • endy: coordenada y (largura) onde terminará o swipe
  • duration: tempo de duração em milisegundos do movimento do swipe

Agora presta atenção nas observações abaixo:

  • O tempo de duração sempre é pequeno para um swipe completo, sendo recomendado até 500 milisegundos
  • Nunca utilize as bordas/extremidades da tela para o swipe, ou seja o valor 0 (zero) ou o tamanho total do x ou y. Isso causa uma exception

Frente a estas observações, se quisermos efetuar um swipe para a esquerda (seu dado no canto direito da tela até a esquerda da tela) temos o seguinte código genérico, independente do tamanho de tela.

Para mostrar apenas visualmente o x / 2 (que é a metade da tela) e a direção que o swipe irá fazer

POSTS RELACIONADOS

AGENDA

CURSOS RELACIONADOS