Calabash-Android Comment créer des boucles ou itérer quelque chose jusqu'à une condition de sortie?

StackOverflow https://stackoverflow.com//questions/24008586

  •  20-12-2019
  •  | 
  •  

Question

Entrez la description de l'image ici J'essaie un processus de sélection de siège pour un bus.J'ai une mise en page de siège avec des sièges réservés à certains non réservés.J'ai besoin de sélectionner un siège non grévisé.Je dois créer une boucle en appuyant sur les coordonnées aléatoires à l'écran jusqu'à ce que je puisse passer sur un siège non géré.Comment cela peut-il être fait en utilisant Calabash?

Était-ce utile?

La solution

Ce fil est un peu vieux. Mais de toute façon voici quelque chose dans le sens de ce que vous recherchez.

Vous souhaitez toucher un certain ensemble de coordonnées à l'écran, voir si vous sélectionnez un siège, puis lisez la valeur tarifaire.

Vous avez donc besoin d'une boucle. Vous pouvez utiliser quelque chose comme ça. De votre photo, je peux voir que vous n'avez que 8 places sur là. Mais pour le rendre rapide, essayez simplement de frapper les zones qui pourraient également avoir un siège et dire que nous regardons 3x4 sièges.

a = 0
b = 0
while a < 3
  while b < 4 
     b += 1
  end
  a += 1
end

La boucle extérieure fonctionnera 3 fois, qui est de l'avant à l'arrière. La boucle interne fonctionnera 4 fois, c'est-à-dire des sièges de gauche à droite.

Nous devons maintenant nous assurer que nous cliquons sur chaque position, alors nous ajoutons

performAction('click_on_screen',<x-value>, <y-value>)

Et combiné, nous avons quelque chose comme ça. Où vous avez X et Y qui commencent les positions et doivent correspondre aux coordonnées du premier siège. Ensuite, au début, vous venez de cliquer sur cet endroit et faites ce que vous avez besoin pour obtenir le prix du tarif. Après un premier clic, vous augmentez la valeur XOffset à la distance entre les deux sièges, puis vous êtes prêt à cliquer sur le second. S'il vous plaît gardez à l'esprit que j'ai fait cela plus simple alors la deuxième presse touchera à l'île. Mais sur le 3ème et le 4, vous devriez encore frapper les sièges. Et puis vous faites cela pour les deux rangées suivantes par la suite.

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

meilleures salutations Lasse

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top