Enregistrez sans coder
Cliquez sur ⏺, faites le parcours vous-même : l'extension écrit le script pour vous.
Tutoriel · Extension
Écrivez ou enregistrez un parcours dans une note Kalinotes, rejouez-le en un clic, et récupérez captures et résultats directement dans la note. Sans outil de test à installer.
Un AUTOMATE est un petit script placé dans le champ JavaScript d'une note. L'extension l'exécute sur la page : elle clique, remplit les formulaires, attend les réponses, lit les résultats et les range dans la note. Vos tests vivent ainsi au même endroit que vos retours.
Cliquez sur ⏺, faites le parcours vous-même : l'extension écrit le script pour vous.
Connexion, formulaire de contact, tunnel de commande : retestez le même parcours après chaque mise en ligne, en un clic.
Captures d'écran et commentaires de résultat sont ajoutés automatiquement à la note qui porte le test.
Le script décrit chaque étape exacte : votre développeur rejoue le bug au lieu de le deviner.
« Run All » enchaîne tous les scripts d'une liste et rédige un compte-rendu avec statut et durée de chaque test.
Appelez une API (GET ou POST), testez la réponse et adaptez la suite du script avec des conditions.
Depuis l'extension Kalinotes, sur la page que vous voulez tester. Enregistrez la note : c'est nécessaire pour que les captures et commentaires puissent s'y attacher.
Dans le champ JavaScript de la note, écrivez exactement cette première ligne :
#!AUTOMATELes boutons ⏺ (enregistrer) et ▶ (exécuter) apparaissent dans l'en-tête de la section. Le contenu n'est plus exécuté comme du JavaScript : il est lu commande par commande par le moteur AUTOMATE.
Cliquez sur ▶. Une console s'affiche en bas du formulaire et trace chaque étape en temps réel. Cliquez sur ⏹ pour arrêter le script en cours.
Le bouton ⏺ observe vos actions sur la page et génère le script correspondant.
| Votre action | Commande générée |
|---|---|
| Clic sur un bouton ou un lien | ClickElement "sélecteur" |
| Saisie dans un champ | FillElement "sélecteur" "valeur" |
| Choix dans une liste déroulante | SelectOption "sélecteur" "valeur" |
| Envoi d'un formulaire | Submit "sélecteur" |
| Navigation vers une autre page | LoadUrl "url" + WaitUntilExist "body" |
"***") avec un commentaire vous invitant à les remplacer.Sleep) est insérée après chaque clic : 300 ms, ou 1 000 ms après un lien ou un bouton d'envoi.#!AUTOMATE
# Ceci est un commentaire (ignoré)
COMMANDE argument1 "argument avec espaces" $VARIABLE
# sont ignorées."..." ou '...'.'[name="email"]'.LoadUrl = LOADURL.$, sont communes à tout le script et sont remplacées dans tous les arguments avant chaque commande.$__SCREENSHOT__ contient la dernière capture prise par CopyPage quand la note n'est pas enregistrée.SetVal $NOM "Dupont"
FillElement "#champ-nom" $NOM
Les sélecteurs sont des sélecteurs CSS (#id, .classe, [name="..."]…) : la commande agit sur le premier élément trouvé.
| Commande | Rôle |
|---|---|
SetVal $VAR "valeur" | Affecte une valeur littérale à une variable |
Input $VAR "Message" | Affiche une boîte de saisie et stocke la réponse dans la variable |
Wget $VAR "url" | Charge le contenu texte d'une URL (HTTP GET, sans authentification) dans une variable |
WPost $VAR "url" "cle=valeur" ... | Envoie une requête HTTP POST et stocke le corps de la réponse dans la variable |
LoadUrl "url" | Ouvre l'URL dans l'onglet actif et attend la fin du chargement (15 s maximum) |
Sleep ms | Met le script en pause pendant le nombre de millisecondes indiqué |
ScrollTo "sélecteur" | Fait défiler la page pour centrer l'élément à l'écran |
ClickElement "sélecteur" | Simule un clic sur le premier élément qui correspond au sélecteur CSS |
FillElement "sélecteur" "valeur" | Remplit un champ (input, textarea) et déclenche les événements input et change, pour fonctionner aussi avec React, Vue… |
SelectOption "sélecteur" "valeur" | Choisit une option d'une liste déroulante <select> par sa valeur (attribut value) et déclenche l'événement change |
Submit "sélecteur" | Soumet le formulaire ciblé, ou le formulaire parent de l'élément ciblé, en respectant la validation HTML5 |
KeyPress "sélecteur" "touche" | Simule l'appui d'une touche sur l'élément (keydown, keypress, keyup) |
CopyElement "sélecteur" $VAR | Lit la valeur (champ) ou le texte du premier élément trouvé et le stocke dans la variable |
WaitUntilExist "sélecteur" | Attend que l'élément apparaisse dans la page (vérification toutes les 200 ms, 10 s maximum) |
WaitUntilNoExist "sélecteur" | Attend que l'élément disparaisse de la page (toutes les 200 ms, 10 s maximum) |
CopyPage | Prend une capture de la partie visible de l'onglet |
CreateComment "texte" [$VAR ...] | Ajoute un commentaire à la note qui contient le script |
Alert "message" [$VAR ...] | Affiche une notification flottante dans la page, qui disparaît après 10 secondes ou au clic, avec une barre de progression |
If $VAR OPÉRATEUR "valeur" GOTO :label | Saute vers un label si la condition est vraie |
:label | Définit un point de saut pour les commandes If … GOTO |
Stop | Arrête le script immédiatement, sans erreur |
# commentaire | Ligne ignorée par le moteur, pour documenter votre script |
SetVal $VAR "valeur"Affecte une valeur littérale à une variable.
SetVal $URL "https://example.com"
SetVal $COMPTEUR "0"
Input $VAR "Message"Affiche une boîte de saisie et stocke la réponse dans la variable. Pratique pour demander un identifiant au lancement plutôt que de l'écrire dans le script.
Input $PRENOM "Entrez votre prénom :"
Wget $VAR "url"Charge le contenu texte d'une URL (HTTP GET, sans authentification) dans une variable.
Wget $HTML "https://api.example.com/data.json"
WPost $VAR "url" "cle=valeur" ...Envoie une requête HTTP POST et stocke le corps de la réponse dans la variable. Avec des paires clé=valeur, l'envoi se fait en formulaire (application/x-www-form-urlencoded) ; avec un argument unique qui commence par {, en JSON (application/json). Les variables $NOM sont remplacées partout, y compris dans le JSON. Une erreur HTTP (code ≥ 400) arrête le script.
WPost $REPONSE "https://api.example.com/submit" "nom=$NOM" "email=$EMAIL"
WPost $REPONSE "https://api.example.com/submit" '{"nom":"$NOM","email":"$EMAIL"}'
LoadUrl "url"Ouvre l'URL dans l'onglet actif et attend la fin du chargement (15 s maximum).
LoadUrl "https://example.com/login"
LoadUrl $URL
Sleep msMet le script en pause pendant le nombre de millisecondes indiqué.
Sleep 500
Sleep 2000
ScrollTo "sélecteur"Fait défiler la page pour centrer l'élément à l'écran. Utile pour révéler un contenu chargé au défilement (lazy load).
ScrollTo "#section-resultats"
ScrollTo "footer"
ClickElement "sélecteur"Simule un clic sur le premier élément qui correspond au sélecteur CSS.
ClickElement "#btn-connexion"
ClickElement "form button[type=submit]"
FillElement "sélecteur" "valeur"Remplit un champ (input, textarea) et déclenche les événements input et change, pour fonctionner aussi avec React, Vue, etc.
FillElement "#email" "contact@example.com"
FillElement "#password" $MOT_DE_PASSE
FillElement '[name="search"]' $TERME
SelectOption "sélecteur" "valeur"Choisit une option d'une liste déroulante <select> par sa valeur (attribut value) et déclenche l'événement change.
SelectOption "#pays" "FR"
SelectOption '[name="civilite"]' "M"
Submit "sélecteur"Soumet le formulaire ciblé, ou le formulaire parent de l'élément ciblé, en respectant la validation HTML5.
Submit "#form-login"
Submit "form"
KeyPress "sélecteur" "touche"Simule l'appui d'une touche sur l'élément (keydown, keypress, keyup). Touches courantes : Enter, Escape, Tab, ArrowDown, ArrowUp, Space, Backspace.
KeyPress "#search-input" "Enter"
KeyPress "#modal" "Escape"
CopyElement "sélecteur" $VARLit la valeur (champ) ou le texte du premier élément trouvé et le stocke dans la variable.
CopyElement "#resultat" $TEXTE
CopyElement "input#token" $TOKEN
WaitUntilExist "sélecteur"Attend que l'élément apparaisse dans la page (vérification toutes les 200 ms, 10 s maximum). Le script s'arrête en erreur si le délai est dépassé.
WaitUntilExist "#dashboard"
WaitUntilExist ".alert-success"
WaitUntilNoExist "sélecteur"Attend que l'élément disparaisse de la page (toutes les 200 ms, 10 s maximum). Idéal pour attendre la fin d'un chargement.
WaitUntilNoExist ".spinner"
WaitUntilNoExist "#modal-chargement"
CopyPagePrend une capture de la partie visible de l'onglet. Si la note est enregistrée, la capture lui est attachée ; sinon elle est gardée dans la variable réservée $__SCREENSHOT__.
CopyPage
CreateComment "texte" [$VAR ...]Ajoute un commentaire à la note qui contient le script. Les arguments sont mis bout à bout avec un espace. La note doit être enregistrée.
CreateComment "Résultat du test :" $VALEUR
Alert "message" [$VAR ...]Affiche une notification flottante dans la page, qui disparaît après 10 secondes ou au clic, avec une barre de progression.
Alert "Connexion réussie !"
Alert "Nombre de courriers : " $COUNTER
If $VAR OPÉRATEUR "valeur" GOTO :labelSaute vers un label si la condition est vraie. Opérateurs : == et != (comparaison de texte), >, <, >=, <= (comparaison de nombres).
If $STATUT == "ok" GOTO :succes
If $SCORE > "90" GOTO :excellent
:labelDéfinit un point de saut pour les commandes If … GOTO.
:succes
CreateComment "Test réussi"
StopArrête le script immédiatement, sans erreur. Utile pour sortir d'une branche conditionnelle.
If $CODE != "200" GOTO :erreur
Stop
:erreur
Alert "Erreur HTTP : " $CODE
# commentaireLigne ignorée par le moteur, pour documenter votre script.
# Étape 1 : connexion
Dès qu'au moins un script AUTOMATE est visible dans la liste des notes, un bouton Run All (N) apparaît en haut de la liste. Il exécute tous les scripts dans l'ordre d'affichage.
$MA_VAR est disponible pour les suivants.__, sont exclues).#!AUTOMATE
# Script de test de connexion automatique
Input $LOGIN "Identifiant :"
Input $PASSWORD "Mot de passe :"
LoadUrl "https://example.com/login"
WaitUntilExist "#form-login"
FillElement "#username" $LOGIN
FillElement "#password" $PASSWORD
ClickElement "#btn-submit"
WaitUntilNoExist ".spinner"
WaitUntilExist "#dashboard"
CopyElement "#user-name" $NOM
CopyPage
CreateComment "Connexion réussie pour" $NOM
#!AUTOMATE
# Envoi d'un formulaire via API REST avec saisie utilisateur
SetVal $API "https://api.example.com"
Input $NOM "Votre nom :"
Input $EMAIL "Votre e-mail :"
Input $MESSAGE "Votre message :"
# Mode formulaire : les variables sont remplacées automatiquement
WPost $REP "$API/contact" "nom=$NOM" "email=$EMAIL" "message=$MESSAGE"
Alert "Réponse API :" $REP
# Mode JSON : les variables sont remplacées dans la chaîne
SetVal $ACTION "inscription"
WPost $REP2 "$API/users" '{"action":"$ACTION","nom":"$NOM","email":"$EMAIL"}'
Alert "Réponse JSON :" $REP2
Input utilise la boîte de saisie du navigateur : à éviter dans un onglet Firefox en mode kiosque.Wget et WPost respectent les règles CORS du navigateur : certaines API externes peuvent refuser la requête.LoadUrl attend le chargement de la page, pas forcément la fin des scripts asynchrones : ajoutez un Sleep ou un WaitUntilExist si besoin.If, labels) s'ajoutent à la main.CopyPage (pièce jointe) et CreateComment demandent une note enregistrée.Installez l'extension, créez une note et écrivez #!AUTOMATE : votre premier test tourne en quelques minutes.