Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo hacer clic en la pantalla para especificar la posición en uiautomator?

¿Cómo hacer clic en la pantalla para especificar la posición en uiautomator?

264768502 - #1 - Hace 2 meses

Primero, puedes usar flingForward() en lugar de arrastrar, pero tu control debe ser UiScrollable

Segundo, anula Swipe

extras\android\m2repository com\android\support\test\uiautomator\uiautomator-v18\2.1.2 (uiautomator-v18-2.1.2-sources.jar)! (android/support/test\uiautomator\ InteractionController.java

deslizamiento booleano público (int downX, int downY, int upX, int upY, int pasos, arrastre booleano) {

booleano ret = false;

int swipeSteps = pasos;

double xStep = 0;

double yStep = 0;

// evitar Dividir por cero

if(swipeSteps == 0)

swipeSteps = 1;

xStep = ((double)(arribaX - abajoX))/ swipeSteps;

yStep = ((double)(upY - downY))/ swipeSteps;

// El primer toque comienza exactamente en el punto solicitado

ret = touchDown (abajoX, abajoY);

If (arrastrar)

SystemClock.sleep(mUiAutomatorBridge.getSystemLongPress(mUiAutomatorBridge.getSystemLongPress(mUiAutomatorBridge.getSystemLongPress))getSystemLongPressTime());

for(int i = 1; i < swipeSteps; i++) {

ret &= touchMove(abajoX + (int)(xPaso * i), abajoY + (int)(yPaso * i) );

if (arrastrar)

SystemClock.sleep(mUiAutomatorBridge. i));

if (ret == false)

break;

// Establece un retraso constante conocido entre pasos; de lo contrario,

// dependerá completamente de la velocidad del sistema,

// Los resultados pueden variar en diferentes dispositivos. Esto al menos asegura que tenemos

// un retraso preestablecido. p>

ret &= touchUp(upX, upY);

return(ret);

}

En SystemClock.sleep (REGULAR_CLICK_LENGTH) Reemplace REGULAR_CLICK_LENGTH en esta línea.

a mUiAutomatorBridge.getSystemLongPressTime()

No he probado el segundo método, pero es teóricamente posible

.