Calabash-Android ¿Cómo crear bucles o iterar algo hasta una condición de salida?
Pregunta
Estoy intentando un proceso de selección de asiento para un autobús.Tengo un diseño de asiento con algunos asientos reservados y algunos no reservados.Necesito seleccionar un asiento sin libro.Necesito crear un bucle tocando coordenadas aleatorias en la pantalla hasta que pueda tocar un asiento sin libro.¿Cómo se puede hacer esto usando Calabash?
Solución
Este hilo es un poco viejo. Pero de todos modos aquí va algo en la línea de lo que está buscando.
Desea tocar un cierto conjunto de coordenadas en la pantalla, consulte Si selecciona un asiento y luego lee el valor de la tarifa.
para que necesite un bucle. Puedes usar algo como esto. Desde tu foto puedo ver que solo tienes 8 asientos allí. Pero para hacerlo rápido, solo intente presionar las áreas que también pueden tener un asiento y decir que estamos mirando a 3x4 asientos.
a = 0
b = 0
while a < 3
while b < 4
b += 1
end
a += 1
end
El bucle externo se ejecutará 3 veces, que es de adelante hacia atrás. El bucle interno se ejecutará 4 veces, que es asiento de izquierda a derecha.
Ahora debemos asegurarnos de que hagamos clic en cada posición, por lo que agregamos
performAction('click_on_screen',<x-value>, <y-value>)
y combinados tenemos algo como esto. Donde tiene X e Y que están iniciando posiciones y deben coincidir con las coordenadas del primer asiento. Luego, al principio, simplemente haga clic en esa ubicación y haga lo que necesita para obtener el precio de la tarifa. Después del primer clic, aumenta el valor XOFFSET por la distancia entre los dos asientos, y luego está listo para hacer clic en el segundo. Por favor, tenga en cuenta que hice esto más sencillo, así que en realidad la segunda prensa se tocará en la Isla. Pero en el 3º y el cuarto, deberías volver a golpear los asientos. Y luego haces eso por las dos siguientes filas después.
a = 0
b = 0
x = 100
y = 500
xOffset = x;
while a < 3
while b < 4
performAction('click_on_screen', xOffset, y)
b += 1
xOffset += 200
end
xOffset = x
y += 200
a += 1
end
Saludos cordiales Lasse