Cómo automatizar el patrón de desbloqueo en un teléfono real utilizando uiautomator?
Recientemente he empezado a aprender uiautomator
para la prueba de interfaz de usuario de varios dispositivos Android. Actualmente estoy probando en el Galaxy S4.
Estoy buscando cualquier clase o método que se puede utilizar para automatizar el patrón de desbloqueo que el usuario dibuja para desbloquear el teléfono. Por ejemplo, tengo la letra N
como un "patrón de dibujo" para desbloquear el teléfono. ¿Cómo puedo automatizar este patrón de desbloqueo en uiautomator
?
- Proyecto Ui Automator 2.0 en Android Studio
- UiAutomator volcado para Lollipop Lost WebView Ver jerarquía
- UIAutomator en Android más bajo que 4.3
- ¿Cómo presionar un botón dos veces con Google UiAutomator?
- Android recibe texto del navegador
- UIAutomator corriendo con espresso
- Cómo obtener una instancia de android.app.UiAutomation
- Cómo cambiar el título de las actividades en attach ()
- UiAutomator getLastTraversedText ()
- Cómo rellenar la contraseña EditText con Android uiautomator?
- Prueba de UiAutomator 2.0 desde la línea de comandos
- Uiautomator "soy comienzo"
- Ejecute UiAutomator API desde Android Studio (v0.8)
Suponga que tiene la letra "N" como patrón de desbloqueo, entonces primero debe encontrar las coordenadas de cada punto de esa forma N en su dispositivo. Como usted mencionó, la cerradura entera del patrón tendrá 9 puntos, usted tiene que conseguir (x, y) coordenadas de 4 puntos. Para obtener las coordenadas, puede utilizar el mismo método mencionado anteriormente en una de las respuestas.
- Vaya a "Configuración" -> "Opciones del desarrollador".
- En la sección 'INPUT' -> encontrará una opción 'Pointer Location' -> habilitar esa opción.
Una vez que obtenga sus coordenadas de 4 puntos, use el método swipe (Point [], int segmentSteps) de UiAutomator Framework.
La entrada para este método es el conjunto de 4 de coordenadas que obtuvo de la pantalla del dispositivo como matriz de puntos. Esto le dará un deslizamiento continuo a través de los puntos.
He dado un script de ejemplo a continuación para su comprensión.
import android.graphics.Point; public void unlockpatternlock() throws UiObjectNotFoundException, Exception { Point[] cordinates = new Point[4]; cordinates[0] = new Point(248,1520); cordinates[1] = new Point(248,929); cordinates[2] = new Point(796,1520); cordinates[3] = new Point(796,929); getUiDevice().wakeUp(); getUiDevice().swipe(cordinates, 10); }
Encima de la escritura dibujaría la forma de N suavemente. Recuerde introducir las coordenadas de acuerdo con la pantalla del dispositivo.
Esta es la única manera que sé de hacerlo, pero puede ser tedioso tratar de encontrar sus coordenadas xey.
UiDevice.getInstance().swipe(int startX, int startY, int endX, int endY, int steps)
El único probelm que veo es hacer un "N", usted necesitaría 3 de estos swipe
. Para desbloquear, tiene que ser un golpe continuo.
Dale un espectáculo. Encontrar su xyy será difícil. Yo iría a mi página de "apps home" y vería las aplicaciones (con el uiautomatorviewer
) que están en relativamente el mismo lugar, encuentran sus coords, luego van desde allí.
NOTA Los int steps
son lo rápido y "suave" que desea pasar. Me gusta usar 5 o 10. Parece bastante natural.
Para averiguar las coordenadas de la pantalla, puede seguir esto:
[1] Go to 'Settings' -> 'Developer Options'. [2] Under 'INPUT' section -> you will find a option 'Pointer Location' -> enable that option.
Después de eso, si toca en cualquier parte de la pantalla, puede ver las coordenadas exactas de la pantalla de ese punto en la parte superior de la pantalla en su dispositivo.
Y después de que usted consiga las coordenadas, usted puede utilizar el método del golpe diga como esto –
UiDevice.getInstance().swipe(390, 1138, 719, 1128, 40);
Método que da fácilmente las coordenadas exactas donde arrastrar desde y hasta qué punto.
Ya he utilizado esto y funciona!
- Raw no se puede resolver o no es un campo
- ¿Qué hace el método preventdefault () cuando lo ponemos en nuestra función personalizada en flex?