Automatiser la complétion de formulaire

Geoli75 Messages postés 5 Date d'inscription vendredi 11 octobre 2024 Statut Membre Dernière intervention 2 novembre 2024 - Modifié le 11 oct. 2024 à 12:50
Geoli75 Messages postés 5 Date d'inscription vendredi 11 octobre 2024 Statut Membre Dernière intervention 2 novembre 2024 - 2 nov. 2024 à 16:42

Bonjour,

Nous allons avoir plus d'une centaine de fiches à créer, et nous cherchons un moyen d'automatiser cela assez facilement.
Les fiches se créent en complétant un formulaire (clics sur des images et deux complétions de champs textes, toujours les mêmes) qui prend plusieurs pages internet pour arriver à un enregistrement. Au total, il y a 4 pages.

J'ai pas mal cherché des enregistreurs de clics mais aucun n'est probant :
- soit les clics sont bien enregistrés mais il y a toujours un décalage entre ce qu'on enregistre à l'écran et le moment où on lance l'automatisme, même si on replace le pointeur au bon endroit avant de lancer le clic auto.
- soit cela prend en compte les clics dans le formulaire mais que sur la première page. L'enregistrement s'arrête au clic "Envoyer" qui amène a la page suivante.
- soit que c'est limité à deux clics.... :roll:

Existe t-il un bon logiciel qui enregistre les entrées souris / clavier pour les reporter en boucle ou un script Tampermonkey sur Firefox / Chrome pour une autocomplétion de formulaire ?

A voir également:

5 réponses

Bruno83200_6929 Messages postés 282 Date d'inscription jeudi 18 juin 2020 Statut Membre Dernière intervention 23 octobre 2024 57
12 oct. 2024 à 19:23

Bonjour,

Vous pourriez peut-être utiliser iMacros. C'est une extension pour Firefox et Chrome qui permet d'enregistrer et de rejouer des interactions avec des pages web. Vous pouvez enregistrer une séquence sur plusieurs pages, et l'extension rejouera cette séquence automatiquement.

Sinon, l'idéal serait d'utiliser l'extension Tampermonkey. Cela permet d'injecter des scripts JavaScript personnalisés directement dans les pages web. Vous pouvez créer un script pour chaque page du formulaire et automatiser les clics et la saisie des champs. Une fois le script configuré, Tampermonkey lancera l'autocomplétion à chaque fois que la page est chargée.

Le début du code pourrait être :

// Pour une page où il faut remplir un champ et cliquer sur un bouton
document.querySelector('input[name="nomChamp"]').value = "Valeur";
document.querySelector('button[name="submit"]').click();

Vous devrez adapter le script à chaque page du formulaire en fonction des éléments HTML spécifiques.


0
Geoli75 Messages postés 5 Date d'inscription vendredi 11 octobre 2024 Statut Membre Dernière intervention 2 novembre 2024
16 oct. 2024 à 11:38

Merci pour la réponse, 
J'ai déjà essayé iMacros, mais cela ne fonctionne pas plus loin que la première page. L'enregistrement s'arrête quand le navigateur charge la page suivante :/ 

Côté Tampermonkey, même si je connais un peu l'extension, je n'ai pas assez de connaissances pour gérer un script comme ça. Je testerai quand même 

<style type="text/css">::-webkit-scrollbar, ::-webkit-scrollbar:horizontal, ::-webkit-scrollbar:vertical { width: 12px !important; height: 12px !important; background-color: #000000 !important; } ::-webkit-scrollbar-track-piece { background: rgba(236, 234, 234, 1) !important; box-shadow: inset 0 0 1.92px rgba(128,128,128, 1) !important; border: 1.02px solid rgba(128,128,128, 1) !important; border-radius: 0px !important; } ::-webkit-scrollbar-thumb { background: rgba(0,0,0,1) !important; box-shadow: inset 0 0 0px #000000 !important; border-radius: 0px !important; border: 1.7399999999999998px solid #000000 !important; } ::-webkit-scrollbar-thumb:vertical { background-image: ""; } ::-webkit-scrollbar-thumb:horizontal { background-image: ""; } ::-webkit-scrollbar-corner { background: #B0BEC5 !important; } </style>
0
Bruno83200_6929 Messages postés 282 Date d'inscription jeudi 18 juin 2020 Statut Membre Dernière intervention 23 octobre 2024 57
16 oct. 2024 à 15:34

Bonjour,

Je pense que Tampermonkey serait plus adapté. Je vous donne un exemple de code pour Tampermonkey pour une page :

// ==UserScript==
// @name         Automatisation Formulaire
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  Remplir automatiquement un formulaire sur plusieurs pages
// @author       Vous
// @match        *://url-de-la-page-1/*
// @match        *://url-de-la-page-2/*
// @match        *://url-de-la-page-3/*
// @match        *://url-de-la-page-4/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Détecter quelle page est active pour exécuter les actions correspondantes
    if (window.location.href.includes("url-de-la-page-1")) {
        document.querySelector('input[name="champ1"]').value = "Valeur1";
        document.querySelector('button[name="submit"]').click();
    }
    else if (window.location.href.includes("url-de-la-page-2")) {
        document.querySelector('input[name="champ2"]').value = "Valeur2";
        document.querySelector('button[name="submit"]').click();
    }
    else if (window.location.href.includes("url-de-la-page-3")) {
        document.querySelector('input[name="champ3"]').value = "Valeur3";
        document.querySelector('button[name="submit"]').click();
    }
    else if (window.location.href.includes("url-de-la-page-4")) {
        document.querySelector('input[name="champ4"]').value = "Valeur4";
        document.querySelector('button[name="submit"]').click();
    }
})();

Remplacez url-de-la-page avec les URLs exactes des pages du formulaire.

Adaptez les sélecteurs (par exemple input[name="champ1"]) en fonction des éléments HTML spécifiques de chaque page.

Le script se déclenchera automatiquement lorsqu'une des pages spécifiées sera chargée.

0
Geoli75 Messages postés 5 Date d'inscription vendredi 11 octobre 2024 Statut Membre Dernière intervention 2 novembre 2024
Modifié le 31 oct. 2024 à 21:55

Merci de la réponse,

J'ai encore testé avec iMacros, il ne détecte pas le changement de page ni certaines entrées du formulaire.

Celui-ci comporte des balises <ul><li> pour certains "boutons" affichés sous forme d'images. au clic, la balise <li> obtient la classe active.
Par exemple, <li>
                        <button type="button" id="Traditional" data-cache-type="Traditional"><img src="/images/types/2.gif" alt="" aria-hidden="true">Général</button></li>

Un clic sur l'image et la balise <li> est active.

La solution d'un userscript Tampermonkey (j'ai pris le temps d'un peu voir comment cela fonctionnait de base) ne semble pas aller :/ 
Je pense qu'ils ont créé ce formulaire avec des balises à activer d'un clic (sélection du type d'enregistrement) pour justement éviter les macros :/

0
Geoli75 Messages postés 5 Date d'inscription vendredi 11 octobre 2024 Statut Membre Dernière intervention 2 novembre 2024
31 oct. 2024 à 23:27

Je me réponds car je pense que le délai d'édition est dépassé.

J'ai testé le script Automatisation Formulaire. Il est bien actif.
J'ai modifié les différents input disponibles, mais cela ne complète rien.

Exemple : 

if (window.location.href.includes("https://www.*****.com/forms/typechoice.aspx")) {
        document.querySelector('input[name="ctl00$ContentBody$typelong"]').value = "typelongtest";
        document.querySelector('input[name="ctl00$ContentBody$typecourt"]').value = "typecrttst";
   
ou même le simple bouton click() sur submit avec le bon nom du bouton de la page 2 ne passe pas. 

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Geoli75 Messages postés 5 Date d'inscription vendredi 11 octobre 2024 Statut Membre Dernière intervention 2 novembre 2024
2 nov. 2024 à 16:42

Après plusieurs tests, sur deux PC différents, j'y suis arrivé. 
Le dernier script iMacros ne fonctionnait pas, et après lecture des logs, j'ai vu un souci dans les URL, retrait des URL GOTO, cela ne fonctionnait pas encore. 

J'ai relancé le même script aujourd'hui, et miracle (?), cela fonctionne. 

Je vois qu'iMacros risque d'être désactivé des extensions Google Chrome, si quelqu'un a le même système pour Firefox ou autre navigateur, au cas où...

Ou une solution pour tampermonkey... 

Merci :)

0