Recherche de l'état du navigateur

Lorsque vous enregistrez des scripts de test fonctionnel, si vous trouvez que certains contrôles n'ont pas été extraits par l'enregistrement, vous pouvez vérifier si le navigateur utilisé lors de l'enregistrement était dans un état prêt à l'enregistrement. De même, si vous avez rencontré des problèmes lors de la lecture, vous pouvez vérifier l'état du navigateur. Vous pouvez adapter l'API find() dynamique et utiliser la méthode Html.HtmlBrowser à cette fin.

Cet exemple vous montre comment adapter l'API find() dynamique et utiliser la méthode Html.HtmlBrowser pour vérifier l'état d'un navigateur lors de l'enregistrement ou de la lecture.

	public void testMain (Object[] args) 
	{
		// Cet exemple vérifie si le navigateur est ou non dans un état prêt.
		// Pour exécuter ce script, démarrez une seule instance du navigateur, Internet Explorer ou Mozilla Firefox.

		startBrowser("http://www.google.com");
		sleep(5);
		// Vérification de la classe du navigateur et, si elle est trouvée, retour à l'objet de test
		TestObject[]  to = find(atChild(".class", "Html.HtmlBrowser"));
		// Un ou plusieurs objets de test trouvés
		if(to.length > 0)
		{
			// Transtypage dans BrowserTestObject
			BrowserTestObject bto = (BrowserTestObject)to[0];

			// Attendre que le navigateur soit prêt 
			// paramètres : objet de test du navigateur, état du navigateur, délai d'attente & délai en secondes
			boolean isBrowserReady = waitForBrowserTobeReady(bto, 4, 240, 10);
			if(isBrowserReady)
			{

				// Réalisation d'une opération de recherche et sauvegarde de l'objet retourné dans le tableau TestObject
				TestObject[] googleButton =  bto.find(atDescendant(".class" ,"Html.INPUT.submit",".value","I'm Feeling Lucky"));

				if(googleButton.length ==0 )
				{
					System.out.println("None found");
					return;
				}
				// Clic sur le premier objet de test s'il est trouvé.
				((GuiTestObject)googleButton[0]).click();

			}
			else
			{
				System.out.println("Le navigateur n'est pas passé à l'état Prêt");
			}
			unregisterAll();


		}
		else
		{
			System.out.println("Pas d'instance du navigateur trouvée");
		}
	}

	/*
	 * 
	 * waitForBrowserTobeReady
	 * paramètres : 
	 * Cette méthode attend que le navigateur passe à l'état Prêt (readyState) dans une période de temps spécifiée
	 * BrowserTestObject = bto
	 * readyState (état Prêt) = 4
	 * timeout (délai d'attente) = 120 secondes
	 * delay (retard) = 10 secondes
	 */

	static boolean waitForBrowserTobeReady(BrowserTestObject bto, int readyState, int timeout, int delay)
	{
		// Vérifier si le navigateur est prêt
		boolean isBrowserReady = false;

		// Nombre d'essais avec un délai
		int noOfTries = timeout/delay;

		for(int i=0; i < noOfTries; i++)
		{
			try
			{

				// Valeurs possibles de la propriété .readyState pour le navigateur
				// 0 - Non initialisé
				//1,2 - EN_CHARGEMENT
				//3 - CHARGE
				//4 - ACTIVE/VISIBLE/PRET
				int browserState = ((Integer)(bto.getProperty(".readyState"))).intValue();
				if(browserState >= readyState)
				{
					isBrowserReady = true;
					break;
				}
			}
			// Interception des exceptions
			catch (Exception e)
			{
				break;
			}
			sleep(delay);
		} 
		// Retour réussi. Le navigateur est dans un état Prêt.
		return isBrowserReady;
	}
}

Retour d'informations