En C# Codé de l'INTERFACE utilisateur est-il un moyen d'attendre pour un contrôle pour être cliquable
Dans codé de l'interface utilisateur, il est un moyen d'attendre pour un contrôle d'exister à l'aide de UITestControl.WaitForControlExist(waitTime);
. Est-il possible d'attendre pour un contrôle n'existe pas?
La meilleure façon que je pouvais penser est de créer une extension de la méthode comme ceci:
public static bool WaitForControlClickable(this UITestControl control, int waitTime = 10000)
{
Point p;
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
while (stopwatch.ElapsedMilliseconds < waitTime)
{
if (control.TryGetClickablePoint(out p))
{
return true;
}
Thread.Sleep(500);
}
return control.TryGetClickablePoint(out p);
}
Est-il une meilleure manière de faire ceci? Aussi, je suis à la recherche d'un moyen de faire le contraire.
OriginalL'auteur jgerstle | 2013-04-22
Vous devez vous connecter pour publier un commentaire.
Donc ce WaitForControlExists en fait, c'est d'appeler le public WaitForControlPropertyEqual, quelque chose comme:
Votre aide peut appeler plutôt:
Aussi, comme Kek points, il y a un WaitForControlNotExist méthode publique.
Remarque qu'ils ont tous l'air d'être en utilisant la même aide (publique):
cette aide consiste essentiellement à ne à un Fil.Dormir sur le thread en cours, à peu près comme vous le faites.
Je dirais de regarder dans cette assemblée, et de voir comment tous ces moyens sont mis en œuvre (utilisation d'un réflecteur de l'outil). Ils semblent tous pointer dans la même direction générale de ce que vous avez fait.
OriginalL'auteur Bogdan Gavril MSFT
Si vous voulez juste à attendre pour une longueur de temps, vous pouvez ajouter à votre test:
avec le temps en millisecondes.
Playback.Wait(500);
serait privilégié par rapport à l'Thread.Sleep(500);
que le code en question utilise déjà?Selon MSDN, la Lecture.Wait() permet d'annuler la lecture avant la fin de l'attente alors que le sommeil ne pourrait pas ou jeter l'exception. msdn.microsoft.com/en-us/library/gg131072.aspx
OriginalL'auteur knighter
Il y a une famille de
WaitForControl...()
méthodes, y compris laWaitForControlNotExist()
méthode.L'ensemble de ces
Wait...
méthodes:Il y a aussi les
WaitForCondition()
etWaitForControlCondition()
méthodes qui peuvent être utilisés pour attendre pendant plus compliqué conditions.OriginalL'auteur AdrianHHH