IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Comment implementer Try catch bloc en java?


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut Comment implementer Try catch bloc en java?
    Bonjour tout le monde,

    je suis en train de coder un Junit test pour une application en Eclipse.
    Sélénium m'a aider a exporter le code en java mais le code est très restreint, il ne fait que ré-jouer.

    J'ai donc décider de rendre le code plus propre a java en ajoutant quelques lignes.

    Donc Sélénium me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    driver.findElement(By.cssSelector("Nom")).click();// nom est un bouton ou lien dans une page web
    driver.findElement(By.cssSelector("Prénom")).click();// prénom est un bouton ou lien dans une page web
    driver.findElement(By.cssSelector("Adresse")).click();// adresse nom est un bouton ou lien dans une page web


    Ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    WebElement new_template = driver.findElement(By.linkText("Nom"));
        try{
                if(new_template.isDisplayed()){
                	new_template.click();
                }
            }
     
        catch(NoSuchElementException nsee){
                    System.out.println(nsee.toString());
         }

    Le deuxieme code fonctionne bien, il me lance une exception sir je met un autre nom a la place de "Nom"

    Question:
    Comment puis-je intégrer dans ce code try-catch pour les deux autres web elements?

    J'ai essayé ceci mais ca ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    WebElement _nom = driver.findElement(By.linkText("Nom"));
    WebElement _prenom = driver.findElement(By.linkText("Prénom"))
     
        try
         {
                if(_nom.isDisplayed()){
                	_nom.click();
                }
            }
    		    if(_prenom.isDisplayed()){
                	_prenom.click();
                }
            }
     
        catch(NoSuchElementException nsee){
                    System.out.println(nsee.toString());
         }

    Ce que j'essaie de faire c'est juste de m'assurer que les boutons ou lien Nom, Prénom et Adresse sont bien affichés dans ma page.
    Et si l'un des trois éléments n'est pas bien affiché, alors je verrai une erreur dans mon fichier de result en xml.

    Merci

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    bonjour,

    le problème est de savoir comment tu souhiates traiter l'ensemble des erreurs !
    Cela peut être géré de deux façons différente :
    - Je souhaites savoir s'il y a au moins un erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    WebElement _nom = driver.findElement(By.linkText("Nom"));
    WebElement _prenom = driver.findElement(By.linkText("Prénom"))
     
        try
         {
                if(_nom.isDisplayed()){
                	_nom.click();
                }
    	    if(_prenom.isDisplayed()){
                	_prenom.click();
                }
        } catch(NoSuchElementException nsee){
                    System.out.println(nsee.toString());
         }
    Dans ce cas précis, si nom et prenom ne sont pas présent tu aurras juste une erreur pour nom, puisque l'exception va te faire sortir du bloc try et prenom ne sera pas testé !

    - Je souhaites savoir s'il y a plusieurs erreurs en une seul fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    WebElement _nom = driver.findElement(By.linkText("Nom"));
    WebElement _prenom = driver.findElement(By.linkText("Prénom"))
     
        try
         {
                if(_nom.isDisplayed()){
                	_nom.click();
                }
        } catch(NoSuchElementException nsee){
                    System.out.println(nsee.toString());
         }
        try
         {
    	    if(_prenom.isDisplayed()){
                	_prenom.click();
                }
        } catch(NoSuchElementException nsee){
                    System.out.println(nsee.toString());
         }
    Dans ce cas précis, si nom et prenom ne sont pas présent tu aurras une erreur pour nom et pour prénom !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    Merci pour la réponse,
    en fait je voudrai tester que si l'un et/ou l'autre élément est absent dans la page, je dois lancer une erreur qui me dirq exactement quel est l'élément qui n'est pas affiché.
    Le deuxième code me semble correct.

    Merci.

  4. #4
    Membre régulier Avatar de stpaul04
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 271
    Points : 116
    Points
    116
    Par défaut
    Je pens que je vais retenir la solution suivante, s'il y a une erreur dans le nom ou le prenom le test ne passera pas.
    Si l'erreur est reperé dans le nom, le test s'arretera et n'ira pas jusqu'au Test de Prenom.
    D'ailleurs cela ne servira a rien de continuer apres l'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     WebElement _nom = driver.findElement(By.linkText("Nom"));
     
            try
             {
            	 if(_nom .isDisplayed()){
                 	_nom .click();
                    }
            } catch(NoSuchElementException nsee){
                        System.out.println(nsee.toString());
            }           
     
        WebElement _prenom = driver.findElement(By.linkText("Prenom"));
     
            try
             {
        	    if(_prenom .isDisplayed()){
        	    	_prenom .click();
                    }
            } catch(NoSuchElementException nsee2){
                        System.out.println(nsee2.toString());  
     
             }
    Si vous aves des remarques, faites les. Merci

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    euh ! bin non si tu veux t’arrêter sur la première erreur qui survient alors il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    try
         {
                if(_nom.isDisplayed()){
                	_nom.click();
                }
    	    if(_prenom.isDisplayed()){
                	_prenom.click();
                }
        } catch(NoSuchElementException nsee){
                    System.out.println(nsee.toString());
         }
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Comment implementer un deuxième code dans java
    Par stpaul04 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 11/06/2014, 19h47
  2. Réponses: 9
    Dernier message: 25/08/2009, 13h31
  3. Réponses: 8
    Dernier message: 05/03/2008, 15h09
  4. Réponses: 4
    Dernier message: 31/10/2005, 14h42
  5. [try-catch] relancer les instruction du bloc try
    Par nounou dans le forum Langage
    Réponses: 11
    Dernier message: 12/05/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo