diff --git a/README.md b/README.md new file mode 100644 index 0000000..56804e8 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Tests Paheko + +Suite de tests du [logiciel de gestion d'association Paheko](https://fossil.kd2.org/paheko) + +## Outils +- [Selenium IDE](https://www.selenium.dev/selenium-ide) +- [Selenium runner](https://www.selenium.dev/selenium-ide/docs/en/introduction/command-line-runner) + +## Tests installation + +## Tests de connexion + +## Tests des membres diff --git a/todo.html b/todo.html new file mode 100644 index 0000000..b2d48fd --- /dev/null +++ b/todo.html @@ -0,0 +1,1299 @@ + + + + + + + +Paheko : tests des membres + + + + + +
+

Paheko : tests des membres

+
+

Table des matières

+ +
+
+

1. Test paheko

+
+
+
+

1.1. DONE 01 Installation

+
+
    +
  • Exemple de test (après avoir installé un Paheko sur sa machine, sur +le vhost "paheko.localhost", sans base de données) : +
      +
    • se rendre à l'adresse http://testpaheko.local.bzh
    • +
    • remplir le formulaire d'installation
    • +
    • valider le formulaire (cliquer sur le bouton en bas de page)
    • +
    • sur la page suivante cliquer ensuite sur "configuration" dans le menu
    • +
    • vérifier que les informations de l'association indiquées lors +l'installation se retrouvent exactement dans les champs de la +configuration
    • +
    • cliquer sur le menu "Membres"
    • +
    • vérifier que le membre par défaut est bien dans la liste
    • +
    • cliquer sur la fiche du membre
    • +
    • vérifier que l'adresse e-mail et autres infos remplies à +l'installation sont bien là
    • +
    • mdp admin : interpeller noircir colis allumer
    • +
  • +
+
+
+

1.1.1. DONE 01-01 installation initiale

+
+
+

1.1.2. DONE 01-01a installation sur base existante

+
+
+

1.1.3. DONE 01-02 vérification premier membre

+
+
+
+

1.2. DONE 02 Connexion

+
+
+
+

1.2.1. DONE 02-01 connexion correcte

+
+
+

1.2.2. DONE 02-02 connexion échec identifiant

+
+
+

1.2.3. DONE 02-03 connexion échec mdp

+
+
+
+

1.3. TODO Membres

+
+
+
+

1.3.1. DONE 03 créer un membre

+
+
+
    +
  1. données de la fiche membre
    +
    +
      +
    • Catégorie : choisir parmi les possibilités
    • +
    • Rattacher à un membre : non / choisir un membre
    • +
    • Numéro : par défaut ou à saisir
    • +
    • Nom & prénom (oblig)
    • +
    • Adresse E-Mail
    • +
    • Adresse postale
    • +
    • Code postal
    • +
    • Ville
    • +
    • Numéro de téléphone
    • +
    • Inscription à la lettre d'information
    • +
    • Date d'inscription
    • +
    +
    +
  2. +
  3. DONE 03-01 standard
  4. +
  5. DONE 03-03 Catégorie « Ancien membre »
    +
    +
      +
    • vérifier catégorie du membre créé
    • +
    +
    +
  6. +
  7. DONE 03-04 Inscrit à la lettre
  8. +
  9. DONE 03-05 date bizarre
  10. +
  11. DONE 03-06a attaché à un autre membre (choix unique)
  12. +
  13. DONE 03-06b attaché à un autre membre (plusieurs choix)
    +
    +
      +
    • utiliser et vérifier le numéro du responsable
    • +
    +
    +
  14. +
  15. DONE 03-07 numéro différent de celui proposé par défaut
  16. +
  17. DONE 03-91 numéro en double
  18. +
  19. DONE 03-92a date antérieure min
  20. +
  21. DONE 03-92b date postérieure max
  22. +
  23. DONE 03-93a nom en double refusé
  24. +
  25. DONE 03-93b nom en double accepté
  26. +
+
+
+

1.3.2. DONE 04 lister les membres

+
+
+
    +
  1. DONE 04-01 toutes les catégories
    +
    +
      +
    • gérer le cas où les membres occupent plus d'une page
    • +
    • ¿ vérifier si on peut supprimer un tri inutile ?
    • +
    +
    +
  2. +
  3. DONE 04-02 toutes catégories sauf cachées
  4. +
  5. DONE 04-03 une seule catégorie
  6. +
  7. DONE tri par différents critères
    +
      +
    1. DONE 04-04, 04-05 tri par nom croissant et décroissant
      +
      +

      +Le nouveau tri est comme ceci : +colonne IS NULL DESC, colonne DESC, numero DESC +(DESC est remplacé par ASC pour un tri croissant) +Autre changement du coup : les champs non-vides sont placés en dernier +pour un tri croissant, en premier pour un tri décroissant. +

      +
      +
    2. +
    3. DONE 04-06 numéro décroissant
    4. +
    5. DONE 04-07, 04-08 ville croissant et décroissant
      +
      +

      +Tri par ville +

      +
        +
      • ville (dé)croissant, numéro membre (dé)croissant
      • +
      • ville vide en fin(début), numéro membre (dé)croissant
      • +
      +
      +
    6. +
    7. DONE 04-09, 04-10 tri par membre « rattaché à » croissant et décroissant
      +
      +
        +
      • pour la colonne "rattaché à" : on met un tri sur la qualité de +parent, puis le nom du parent en premier, puis le nom du membre, +puis son numéro : +
          +
        • idparent IS NULL ASC, nomparent DESC, nommembre DESC, numero DESC +
            +
          • parent (dé)croissant, nom membre (dé)croissant, numéro (dé)croissant
          • +
          • parent vide à la fin, nom membre (dé)croissant, numéro (dé)croissant
          • +
        • +
      • +
      +
      +
    8. +
    9. DONE 04-11, 04-12 tri par responsable croissant et décroissant
      +
      +
        +
      • isparent ASC, nommembre DESC, numero DESC
      • +
      +
      +
    10. +
    11. DONE 04-90 lister membres sur plusieurs pages
    12. +
    +
  8. +
  9. DONE consulter fiche
  10. +
+
+
+

1.3.3. DONE 05 rechercher des membres

+
+
+
    +
  1. Remarques :
    +
    +
      +
    • si la recherche trouve un seul résultat, elle affiche directement la +fiche du membre
    • +
    • s'il y a plusieurs résultats, la recherche affiche l'onglet +« Recherche avancée » avec les résultats
    • +
    • s'il n'y a aucun résultat, la recherche affiche l'onglet +« Recherche avancée » avec une liste de résultats vide
    • +
    +
    +
  2. +
  3. DONE chercher par nom
    +
      +
    1. DONE 05-01 résultat unique
      +
      +
        +
      • garantir l'unicité du nom cherché
      • +
      +
      +
    2. +
    3. DONE 05-02 plusieurs résultats
    4. +
    5. DONE 05-03 aucun résultat
    6. +
    +
  4. +
  5. DONE chercher par numéro
    +
      +
    1. DONE 05-11 un résultat
    2. +
    3. DONE 05-12 aucun résultat
    4. +
    +
  6. +
  7. DONE par courriel
    +
      +
    1. DONE 05-21 un seul résultat
      +
      +
        +
      • => fiche membre
      • +
      +
      +
    2. +
    3. DONE 05-22 0 résultat
      +
      +
        +
      • => onglet « Recherche avancée »
      • +
      +
      +
    4. +
    5. DONE 05-23 plusieurs résultats
      +
      +
        +
      • => onglet « Recherche avancée »
      • +
      +
      +
    6. +
    +
  8. +
+
+
+

1.3.4. DONE 06 supprimer un membre

+
+
    +
  • NB : le tri des membres ne change pas après suppression
  • +
+
+
    +
  1. DONE 06-01 plusieurs membres sélectionnés
  2. +
  3. DONE 06-02 sélectionné = admin
  4. +
  5. aucun membre sélectionné => action interdite
  6. +
+
+
+

1.3.5. DONE 07 modifier un membre

+
+
+
    +
  1. DONE 07-01 modifier caractéristiques « simples »
    +
    +
      +
    • si un seul membre => en créer un deuxième
    • +
    • chercher le premier numéro disponible
    • +
    • chercher puis modifier le premier membre de numéro différent de 1
    • +
    • modifier les différents champs +
        +
      • numéro
      • +
      • catégorie
      • +
      • nom, prénom
      • +
      • courriel
      • +
      • adresse
      • +
      • code postal
      • +
      • ville
      • +
      • téléphone
      • +
      • lettre info
      • +
      • date inscription
      • +
    • +
    • enregistrer
    • +
    • vérifier les infos
    • +
    +
    +
  2. +
  3. DONE 07-02 attribuer un mot de passe à un membre
    +
    +
      +
    • sélectionner un membre actif (pas ancien, car pas le droit de se +connecter)
    • +
    • cliquer Définir mdp
    • +
    • saisir deux fois un mdp généré
    • +
    • mémoriser nom et adresse courriel
    • +
    • déconnecter
    • +
    • connexion avec +
        +
      • adresse courriel
      • +
      • mdp
      • +
    • +
    • vérifier Nom présent page accueil
    • +
    • vérifier numéro membre sur fiche membre
    • +
    +
    +
  4. +
  5. DONE 07-03 rattacher un membre
    +
    +
      +
    • créer deux membres et mémoriser leurs numéros
    • +
    • rattacher le premier au deuxième à l'aide de son numéro
    • +
    • vérifier les deux membres
    • +
    +
    +
  6. +
+
+
+

1.3.6. DONE 08 importer des membres

+
+
+
    +
  1. Remarques
    +
    +
      +
    • Si déjà tu peux tester qu'un fichier CSV donné s'importe bien, c'est +déjà génial je pense
    • +
    • ¿ Tester les possiblités d'ignorer certains champs ?
    • +
    +
    +
  2. +
  3. DONE Créer tous les membres
    +
    +
      +
    • Tous les membres trouvés dans le fichier seront créés.
    • +
    • Cela peut amener à avoir des membres en doublon si on réalise +plusieurs imports du même fichier.
    • +
    +
    +
      +
    1. DONE 08-01 création sans conflit
    2. +
    3. DONE 08-02 création avec conflit
    4. +
    5. DONE 08-03 création sans en-tête
    6. +
    7. ¿ création en choisissant certaines options ?
    8. +
    +
  4. +
  5. DONE Mettre à jour en utilisant le numéro de membre
    +
    +
      +
    • Les membres présents dans le fichier qui mentionnent un numéro de +membre seront mis à jour en utilisant ce numéro.
    • +
    • Si une ligne du fichier mentionne un numéro de membre qui n'existe +pas ou n'a pas de numéro de membre, l'import échouera.
    • +
    +
    +
      +
    1. DONE 08-11 tous les membres existent ; certains sont mis à jour
    2. +
    3. DONE 08-12 au moins un membre n'existe pas
    4. +
    +
  6. +
  7. DONE 08-21 Automatique : créer ou mettre à jour en utilisant le numéro de membre
    +
    +
      +
    • Met à jour la fiche d'un membre si son numéro existe, sinon crée un +membre si le numéro de membre indiqué n'existe pas ou n'est pas +renseigné.
    • +
    +
    +
  8. +
+
+
+

1.3.7. DONE 09 exporter des membres

+
+
    +
  • Je ne sais pas ce que permet Selenium, mais si déjà tu peux tester +que ça produit bien un fichier de plus de 0 octets ça sera bien.
  • +
  • Résultat avec le runner : le fichier exporté est placé dans le +répertoire ~/Downloads ; parfois l'export échoue +
      +
    • MAIS l'ajout d'une opération après le déclenchement de +l'enregistrement permet sa bonne terminaison
    • +
  • +
+
+
    +
  1. DONE 09-01 export sauf catégories cachées
  2. +
  3. DONE 09-02 export toutes catégories
  4. +
  5. DONE 09-03 export membres actifs
  6. +
  7. DONE 09-04 export administrateurs
  8. +
+
+
+

1.3.8. DONE 10 configuration membres Préférences

+
+
+
    +
  1. DONE 10-01 catégorie par défaut des nouveaux membres
  2. +
  3. DONE 10-02 identité : ajouter adresse courriel au champ Nom & Prénom
  4. +
  5. DONE 10-03 identité : remplacer le champ Nom & Prénom par le champ courriel
  6. +
  7. DONE 10-04 connexion par numéro de membre
  8. +
  9. DONE 10-05 durée de conservation journal : aucun
    +
    +
      +
    • créer un membre
    • +
    • lui attribuer un mot de passe
    • +
    • mettre la durée de conservatin à 0
    • +
    • déconnexion admin
    • +
    • connexion du membre
    • +
    • vérifier journal connexion vide
    • +
    • déconnexion
    • +
    • connexion admin
    • +
    • vérification absence membre dans journal
    • +
    +
    +
  10. +
  11. DONE 10-06 connexion par numéro de téléphone
  12. +
  13. ¿ déconnexion automatique ?
  14. +
+
+
+

1.3.9. DONE 11 ajouter un champ à la fiche membre

+
+
    +
  • vérifier ensuite que les champs membre ajoutés fonctionnent bien dans +la fiche du membre (et ce pour chaque type de champ ?) et apparaissent +dans la liste des membres
  • +
  • les champs prédéfinis s'ajoutent avant les champs personnalisés et +semble-t-il de temps en temps, le nouveau champ (perso) est ajouté en +avant-dernière position !
  • +
+
+
    +
  1. DONE 11-01 ajout champ perso email
  2. +
  3. DONE 11-02 ajout champ perso url
  4. +
  5. DONE 11-03 ajout champ perso case à cocher
  6. +
  7. DONE 11-04 ajout champ perso date
  8. +
  9. DONE 11-05 ajout champ perso date et heure
  10. +
  11. DONE 11-06 ajout champ perso mois et année
    +
    +
      +
    • avec le driver de chrome : +
        +
      • saisir le mois
      • +
      • envoyer le code de la touche de tabulation
      • +
      • saisir l'année
      • +
    • +
    +

    +fonctionne avec runner et le driver de chrome mais probablement pas avec celui de firefox +

    +
    +
  12. +
  13. DONE 11-07 ajout champ perso année
  14. +
  15. DONE 11-08 ajout champ perso fichier
    +
    +
      +
    • utilise le fichier /tmp/cv.pdf
    • +
    • PB : dans la fiche membre, le nom du fichier comporte un « ­ » avant le point
    • +
    +
    +
  16. +
  17. DONE 11-08a ajout champ perso fichier avec modification
    +
    +
      +
    • utilise les fichiers /tmp/cv.pdf et /tmp/cv2.pdf
    • +
    • PB : dans la fiche membre, le nom du fichier comporte un « ­ » avant le point
    • +
    +
    +
  18. +
  19. DONE 11-09 ajout champ perso mot de passe
    +
    +
      +
    • question : ce mot de passe ne sert pas à se connecter, donc à quoi sert-il ?
    • +
    • pour vérifier le mot de passe, il faut : +
        +
      • connecter le membre
      • +
      • modifier les infos personnelles
      • +
      • afficher le mot de passe : +
          +
        • NB : le mdp qui s'affiche (en fonctionnement interactif) est +celui enregistré par le navigateur pour l'admin !!
        • +
        • NB : en mode runner, le champ est vide =>impossible de vérifier le mdp
        • +
      • +
      • Remarque : la modification du mot de passe est prise en compte mais on +ne peut le voir qu'en exportant les données de la fiche membre
      • +
    • +
    +
    +
  20. +
  21. DONE 11-10 ajout champ perso nombre
  22. +
  23. DONE 11-11 ajout champ perso nombre à virgule
  24. +
  25. DONE 11-12 ajout champ perso numéro téléphone
  26. +
  27. DONE 11-13 ajout champ perso Sélecteur à choix unique
  28. +
  29. DONE 11-14 ajout champ perso Sélecteur à choix multiple
  30. +
  31. DONE 11-15 ajout champ perso pays
    +
    +
      +
    • Pour définir le pays par défaut, il faut indiquer son code à deux +lettres et non son nom complet => à documenter ou à changer
    • +
    +
    +
  32. +
  33. DONE 11-16 ajout champ perso texte libre
  34. +
  35. DONE 11-17 ajout champ perso texte choix multiple
  36. +
  37. DONE 11-18 ajout champ perso texte multilignes
  38. +
  39. DONE 11-19 ajout champ perso calculé
  40. +
  41. DONE 11-30 ajout ancienneté
    +
    +
      +
    • c'est un champ calculé à partir de la date d'inscription
    • +
    +
    +
  42. +
  43. DONE 11-31 ajout année naissance
  44. +
  45. DONE 11-32 ajout date naissance
  46. +
  47. DONE 11-33 ajout pays
  48. +
  49. DONE 11-34 ajout photo
    +
    +
      +
    • utilise le fichier /tmp/photo.jpg
    • +
    +
    +
  50. +
  51. DONE 11-35 ajout pronom
  52. +
  53. DONE 11-36 ajout âge en fonction année naissance
    +
    +
      +
    • ajouter année naissance
    • +
    • ajouter âge
    • +
    • tenir compte du cas où il y a déjà un champ âge/date naissance
    • +
    +
    +
  54. +
  55. DONE 11-37 ajout âge en fonction date naissance
    +
    +
      +
    • ajouter date naissance
    • +
    • ajouter âge
    • +
    • tenir compte du cas où il y a déjà un champ âge/année naissance
    • +
    +
    +
  56. +
  57. DONE 11-90 saisir un champ avec un identifiant déjà existant
    +
    +
      +
    • récupérer l'identifiant d'un champ déjà présent
    • +
    • messages d'erreur différents selon le champ : +
        +
      • Ce nom de champ est déjà utilisé par un autre champ : adresse, codepostal, +ville, telephone, lettreinfos1, dateinscription
      • +
      • numero : Aucun champ de numéro de membre n'existe
      • +
      • nom : Aucun champ de nom de membre n'existe
      • +
      • email : Aucun champ d'identifiant de connexion n'existe
      • +
    • +
    +
    +
  58. +
  59. TODO ¿ saisir une donnée erronée dans chaque champ ?
    +
    +

    +Pas sûr qu'on puisse : la saisie des champs est contrôlée (partiellement ?) +

    +
    +
  60. +
+
+
+

1.3.10. DONE 12 modifier un champ de la fiche membre

+
+
+
    +
  1. DONE 12-01 numéro non affiché liste membres
  2. +
  3. DONE TEST SUPPRIMÉ car devenu inutile 12-02 numéro non obligatoire
    +
    +

    +Même si on ne saisit pas un numéro, il sera automatiquement affecté +

    +
      +
    • le test est-il pertinent ?
    • +
    • faut-il empêcher cette modification ?
    • +
    +
    +
  4. +
  5. DONE 12-03 numéro non visible fiche membre
  6. +
  7. DONE TEST SUPPRIMÉ car devenu inutile 12-06 nom, prénom non affiché liste membres
    +
    +
      +
    • la modification n'est plus possible
    • +
    +
    +
  8. +
  9. DONE 12-07 nom, prénom non obligatoire
  10. +
  11. DONE 12-08 nom, prénom modifiable
  12. +
  13. DONE 12-09 nom, prénom non visible fiche membre
  14. +
  15. DONE 12-11 e-mail affiché liste membres
  16. +
  17. DONE 12-12 e-mail obligatoire
  18. +
  19. DONE attention-petit.png 12-13 e-mail modifiable
    +
    +
      +
    • après « se connecter à sa place » : +
        +
      • clic « Mes infos personnelles » échoue
      • +
      • impossible ensuite de se connecter en tant qu'admin
      • +
      • réinstallation nécessaire !
      • +
    • +
    • avec attribution d'un mot de passe, changement email possible, mais : +
        +
      • attente trèès longue lors enregistrement
      • +
    • +
    +
    +
  20. +
  21. DONE 12-14 e-mail non visible fiche membre
  22. +
  23. DONE 12-16 mot de passe modifiable
    +
    +
      +
    • fonctionne, mais temps d'attente long lors de l'enregistrement du +nouveau mot de passe
    • +
    +
    +
  24. +
  25. DONE 12-17 mot de passe non visible
  26. +
+
+
+

1.3.11. DONE 13 changer l'ordre des champs de la fiche membre

+
+
+
    +
  1. DONE 13-01 intervertir numéro et nom
    +
    +
      +
    • est-ce utile de tester d'autres changements d'ordre ?
    • +
    +
    +
  2. +
+
+
+

1.3.12. DONE 14 configuration membres Catégories

+
+
+
    +
  1. DONE 14-01 ajouter une catégorie
  2. +
  3. DONE 14-01b ajouter deux catégories de même non
  4. +
  5. DONE 14-02 supprimer une catégorie non vide
  6. +
  7. DONE 14-03 vider et supprimer une catégorie
  8. +
  9. DONE modifier une catégorie
    +
      +
    1. DONE 14-10 inverser la visibilité d'une catégorie
    2. +
    3. DONE 14-11 interdire connexion
      +
      +
        +
      • interdire la connexion d'une catégorie
      • +
      • ajouter un membre dans cette catégorie
      • +
      • lui attribuer un mot de passe
      • +
      • essayer de connecter le membre
      • +
      • vérifier l'échec
      • +
      +
      +
    4. +
    5. DONE 14-12 autoriser connexion
      +
      +
        +
      • interdire la connexion d'une catégorie
      • +
      • ajouter un membre dans cette catégorie
      • +
      • lui attribuer un mot de passe
      • +
      • essayer de connecter le membre
      • +
      • vérifier l'échec
      • +
      +
      +
    6. +
    +
  10. +
+
+
+

1.3.13. DONE Droits

+
+
    +
  • vérifier que le droit lecture/écriture/administration fonctionne +bien, notamment via le bouton "connexion à la place du membre"
  • +
  • Gestion des membres +
      +
    • Pas d'accès
    • +
    • Lecture uniquement (peut voir les informations personnelles de +tous les membres, y compris leurs inscriptions à des activités)
    • +
    • Lecture & écriture (peut ajouter et modifier des membres, peut +changer de catégorie un membre d'une catégorie ayant des droits +égaux ou moindres, ne peut pas supprimer des membres, peut inscrire +des membres à des activités, peut envoyer des messages collectifs)
    • +
    • Administration (peut tout faire)
    • +
  • +
+
+
    +
  1. DONE 14-20 aucun droit : consultation autre membre impossible
  2. +
  3. DONE 14-30 droit lecture : consultation autre membre possible
  4. +
  5. DONE 14-31 droit lecture : modification autre membre impossible
  6. +
  7. DONE 14-32 droit lecture : création membre impossible
  8. +
  9. DONE 14-40 droit écriture : création membre possible
  10. +
  11. DONE 14-41 droit écriture : suppression autre membre impossible
  12. +
  13. DONE 14-42 droit écriture : changer de catégorie possible
  14. +
  15. DONE 14-43 droit écriture : modifier admin impossible
  16. +
  17. DONE 14-50 droit administration : suppression autre membre possible
  18. +
+
+
+

1.3.14. TODO supprimer un champ dans la fiche membre

+
+
    +
  • certains champs dépendent d'un autre : âge dépend de l'année de +naissance => on ne peut supprimer année si âge est présent !
  • +
  • PROBLÈME : le clic sur le bouton de confirmation de la suppression est pris en compte par +l'IDE mais pas toujours par le runner
  • +
  • même problème en utilisant du code javascript pour ouvrir le +dialogue de confirmation dans un onglet plutôt qu'une popup ; dans +ce cas, c'est la case à cocher qui n'est pas cochée !
  • +
+
+
    +
  1. TODO Suppression adresse postale
    +
    +
      +
    • échec => inutile de perdre davantage de temps !!!
    • +
    +
    +
  2. +
+
+
+
+

1.4. TODO Démarrer la comptabilité

+
+
    +
  • cas normal +
      +
    • choix du PC
    • +
    • dates exercice
    • +
  • +
  • vérifications +
      +
    • nombre d'écritures
    • +
    • PC
    • +
    • dates exercice
    • +
  • +
  • tester erreur saisie dates
  • +
  • tester modif pays
  • +
+
+
+ +
+

1.5. TODO test saisie recette

+
+

+Un autre test pour la compta : +

+
    +
  • se rendre à l'adresse http://testpaheko.local.bzh/admin/ (après avoir été +connecté dans un test précédent, que je ne détaille pas ici)
  • +
  • cliquer sur le menu "Saisie" dans la compta
  • +
  • cliquer sur "recette"
  • +
  • renseigner un libellé, un montant, les comptes, autres champs etc.
  • +
  • valider le formulaire
  • +
  • sur la page de détail de l'écriture, vérifier que toutes les +mentions, comptes et montants correspondent à ce qui a été saisi
  • +
  • se rendre sur la page compte de résultat
  • +
  • vérifier que le montant de la recette apparaît bien dans les +produits, que le nom du compte est bon, etc.
  • +
+
+
+ +
+

1.6. Notes

+
+
+
+

1.6.1. parcours table

+
+
    +
  • compter le nombre d'éléments de la table => nbelem
  • +
  • itérer avec un compteur (while) => num
  • +
  • accéder à l'élément courant grâce au compteur //tr[${num}]
  • +
+ + + +++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CommandTargetValue
storeXpathCountxpath=//table[@class=\"list\"]/tbody/tr/th//spannbelem
executeScriptreturn 1num
while${num} <= ${nbelem} 
storeTextxpath=//table[@class=\"list\"]/tbody/tr[${num}]/th//spannom
echo${nom} 
execute scriptreturn ${num} + 1num
end  
+
+
+ +
+

1.6.2. problème avec instruction conditionnelle dans 4-09 et 4-10

+
+
+
if (${nb_parents} >= 2)
+{ ... }
+else if (${nb_total_membres} > 2)
+// ce bloc est exécuté même si nb_parents >= 2
+{ ... }
+
+
+ +

+Contournement +

+
+
if (${nb_parents} >= 2)
+{ ... }
+else if ${nb_parents} < 2 && ${nb_total_membres} > 2
+{ ... }
+
+
+
+
+
+

1.6.3. problème avec apostrophe

+
+
    +
  • pas d'apostrophe dans les éléments de tableau, sinon problème
  • +
  • si apostrophe dans une chaîne => lors de l'appel d'un script : +problème avec l'IDE mais pas avec le runner
  • +
+
+
+
+

1.6.4. erreur timeout

+
+

+Il y a un bug, référenceé ici : https://github.com/SeleniumHQ/selenium-ide/issues/1819 +qui affiche un message d'erreur après une longue pause : +

+ +

+l'ajout de « detectOpenHandles » est strictement sans effet… +D'où la tentative de contournement dans runtest +

+
+
+
+

1.6.5. comparer des nombres

+
+

+Les valeurs récupérées sur une page sont des chaînes => à convertir en +nombre avec Number pour faire une comparaison numérique (ex : numéro +de membre) +

+
+
+
+

1.6.6. display:none

+
+

+Impossible de sélectionner un élément avec l'attribut display:none +; il faut préalablement lui mettre l'attribut display:block +

+
+
+
+

1.6.7. numéro de téléphone

+
+
    +
  • Attention, un numéro qui commence par 0 est formatté avec un +espace entre les paires de chiffres !!
  • +
+
+
+
+

1.6.8. accès élément tableau javascript

+
+
+
// refusé par IDE mais accepté par runner
+return ${t}[${i}]
+
+
+
+
+
+

1.6.9. objet javascript

+
+

+voir https://github.com/SeleniumHQ/selenium-ide/issues/1603 +

+
    +
  • Syntaxe accès aux objets : ${objet}.attribut ou ${objet}.methode
  • +
+
+
// refusé par le runner
+return ${membre.nom}
+
+// accepté
+return ${membre}.nom;
+
+
+
+
+
+

1.6.10. input type="checkbox

+
+

+Pour (dés)activer un <input type="checkbox", il faut utiliser +(un)check car le runner (de chrome ?) n'aime pas click +

+
+
+
+

1.6.11. Appel de fonction

+
+

+L'appel de fonction définie dans le script avec une variable de +l'IDE en param ne fonction qu'avec Chrome. NB : vérifier exactement +ce qui ne fonctionne pas avec firefox ? +

+
+
+
+

1.6.12. Envoi de fichier

+
+
    +
  • Ne fonctionne qu'avec chrome
  • +
  • insérer (type) le chemin du fichier dans le champ de saisie du nom
  • +
  • cliquer le bouton d'envoi
  • +
  • Important : Ne pas cliquer sur le bouton d'ouverture du sélecteur +de fichier : il ne se refermera pas et masquera les éléments de la +fenêtre précédente qui ne pourront plus être activés
  • +
+
+
+
+

1.6.13. Sélectionner un onglet/une fenêtre après ouverture

+
+
    +
  • +dans la commande qui ouvre une nouvelle fenêtre ou un nouvel onglet, +cliquer l'icône « Add new window configuration » tout à droite de la +commance ; saisir un nom de fenre qu'on pourra utiliser plus loin +pour sélectionner la fenêtre quand elle sera ouverte avec la +commande : +

    +
    +select window | handle=${nom_fenêtre}
    +
  • +
  • voir 13-01 suppression adresse
  • +
+
+
+
+

1.6.14. Version mobile

+
+
    +
  • les libellés des boutons du menu principal n'apparaissent pas et ne +sont donc pas trouvés, ni par un chemin xpath, ni par un chemin css +; il faut donc utiliser un chemin qui s'arrête à l'url du lien +correspondant.
  • +
  • les sous-menus n'apparaissent pas => pas d'accès direct => il faut +procéder par étape : menu puis sous-menu
  • +
  • lors de l'ajout d'un membre, le bouton Enregistrer n'est pas visible +et ne peut être cliqué ; pour le rendre visible, il faut passer +d'une rubrique à l'autre avec la touche Tab ou avec PageDown, par +exemple après avoir saisi la date…. mais : +
      +
    • avec navigateur chrome : pas de sélecteur de date ! => il faut ruser :(
    • +
    • même ainsi, il se peut que le bouton ne puisse recevoir le clic +(voir ci-dessous) ; apparemment le webdriver firefox ne réagit pas +à PageDown et celui de chrome réagit à Tab, mais ça ne suffit pas +à rendre cliquable le bouton Enregistrer
    • +
  • +
+ +

+Bref, ce qui marche pour le driver chrome ne marche pas pour celui de firefox et vice-versa.. +

+ +
+
> selenium-side-runner -c "browserName=firefox" -f "mobile" paheko_v4.side
+
+    Element <button class="main icn-btn" name="save" type="submit"> is not clickable
+    at point (125,633) because another element <ul> obscures it
+
+
+
+
+ +
+

1.6.15. Exception javascript (CORRIGÉ)

+
+

+quand l'inspecteur est ouvert, le clic sur le sélecteur d'identité des +membres (Configuration/Membres/Préférences) déclenche une exception +javascript (TypeError: document.querySelector(…) is null) sur l'instruction : +

+
+
document.querySelector('input').focus();
+
+
+
+
+
+

1.6.16. PB : Se connecter à la place d'un membre

+
+
    +
  • OK avec l'IDE
  • +
  • échec systématique avec le runner => c'est l'admin qui est connecté, +pas le membre choisi
  • +
+
+
+
+

1.6.17. PB : suppression champ dans la fiche membre

+
+
    +
  • OK avec l'IDE
  • +
  • échecs aléatoires avec le runner +
      +
    • le clic sur le bouton de confirmation de la suppression n'est pas +pris en compte
    • +
    • même problème en utilisant du code javascript pour ouvrir le +dialogue de confirmation dans un onglet plutôt qu'une popup ; dans +ce cas, c'est la case à cocher qui n'est pas cochée !
    • +
  • +
+
+
+
+
+
+
+

Auteur: Jean-Christophe Engel

+

Created: 2024-11-14 jeu. 14:34

+

Validate

+
+ + diff --git a/tests.org b/todo.org similarity index 100% rename from tests.org rename to todo.org