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

Tests et Performance Java Discussion :

simuler confirmation javascript


Sujet :

Tests et Performance Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 49
    Points
    49
    Par défaut simuler confirmation javascript
    Bonjour à tous,

    Je réalise des tests d'interface d'une appli j2ee grâce à Selenium mais j'ai un soucis pour simuler le click "OK" d'une pop up de confirmation en javascript.

    Voici mon javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var msg="<bean:message key="006.freeze.config.confirm"/>";
    if (!confirm(msg)) return;
    où le message est défini dans un fichier de properties et qui correspond a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "La validation de la configuration empêchera toute modification ultérieure, veuillez confirmer"
    Dans mon test java selenium, j'ai essayé plusieurs choses sans succès :
    D'abord :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    selenium.waitForPageToLoad("3000");
    selenium.getConfirmation();
    Puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    assertTrue(selenium.getConfirmation().matches("La validation de la configuration empêchera toute modification ultérieure, veuillez confirmer"));
    et encore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    assertEquals("La validation de la configuration empêchera toute modification ultérieure, veuillez confirmer", selenium.getConfirmation());
    ou un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    selenium.getConfirmation();
    tout seul

    mais rien n'y fait, j'ai même pas d'erreur, juste rien qui se produit.
    Je suis a court d'idée la

    Est ce que quelqu'un a une idée,

    merci par avance!

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    j'ai le meme problème apparement Selenium ne tiens pas en compte les pop ups javascript car ils sont onloadé au debut des chargements et donc Selenium n a pas la main dessus au moment propice. Je suis en train de chercher une solution si tu as des informations ou une éventuelle solution n hesite pas à la communiquer, et je ferai de meme

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Alors apparement il y aurait une solution que tu peux tester (je ne l'ai pas testé tu me diras si ca marche ou pas):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    assertNotNull("No confirmation text provided", confirmation);
    		selenium.waitForCondition("selenium.isConfirmationPresent();", SHORT_WAIT_TIME);		
    		if(selenium.isConfirmationPresent()) {
    			assertEquals(selenium.getConfirmation(), confirmation);
    		}
    où confirmation est le texte de ta pop up.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    alors j'ai trouvé une trés bonne sloution qui marche trés bien:
    - tout d'abord tu télécharges AutoHotKey (www.autohotkey.com)
    -tu crées un script ( c hyper facile) pour cliquer sur le OK de ton alerte ou l annuler d'une confirmation
    -dans ton code java tu crées une class qui éxécuteras ton(tes) script.ahk et n oublie pas de tuer ton pocessus aprés avoir lacé le AutoHotKey.exe

    Cette solution marche trés bien il suffit de mettre bien sur un sleep de kelkes secondes aprés l aparition de ton pop up pour permettre al AutoHotKey de se déclencher.
    Je reste à ta disposition si tu n y arrives pas

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    Pour t'éviter de chercher voila le script que j'ai appelé chooseCancelForNextConfirmation.ahk
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SetTitleMatchMode 3
    WinWait Windows Internet Explorer, %1%
    ControlSend, , "	`r", Windows Internet Explorer, %1%
    dans le code il faudra remplacer ce qui est souligné par le nom de ta fentre pop up
    tu pourras faire la meme chose pour un chooseOkForNextConfirmation.ahk en remplaçant le " `r" par un simple `r pour cliquer sur OK.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Ok merci! Ca marchait pas alors le code que je t'ai filé?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut
    franchement je ne l ai pas essayé, car j'avais déja implémenté ma solution. mais je vais voir si ça marche bie, Merci en tous cas

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Points : 49
    Points
    49
    Par défaut
    Ok pas de soucis

  9. #9
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    j'ai eu le même genre de problème. L'appel au selenium.getConfirmation() est nécessaire pour simuler le click sur le bouton OK.
    Ton code fonctionne bien, Aurèlie. Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    selenium.waitForCondition("selenium.isConfirmationPresent();", DELAY_SHORT);	
    assertEquals(selenium.getConfirmation(), "Save changes?");
    Pour info, ajouter un "selenium.waitForPageToLoad(DELAY);" après le getConfirmation() semble échouer avec IE (pas de problème avec Firefox).
    Il faut donc préférer une pause ou une autre condition d'attente.

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/07/2008, 10h39
  2. fenetre modale au lieu d'une confirm javascript
    Par namstou3 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/09/2007, 10h32
  3. Réponses: 20
    Dernier message: 02/06/2006, 13h13

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