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

JavaScript Discussion :

Simuler un click droit pour solution Robot


Sujet :

JavaScript

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut Simuler un click droit pour solution Robot
    Bonjour,

    pour les besoin d'un robot qui automatise des tests automatiquement sur un IHM (dans mon cas Outlook Web Application) en simulation des cliques utilisateurs, je suis confronté à un scénario qui me pose problème. L'idée c'est de simuler un click lorsque je suis sur l'item "Boite de réception" afin de faire apparaître un "div" contenant des choix comme "Vider le dossier". Seulement, ce "div" qui apparaît est généré avec un id dynamique, je peux me baser uniquement sur le nom de la class CSS.

    Comment simuler le click droit afin de faire apparaître ce div ?

    J'ai trouvé des pistes comme ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function detectRightClick(evt) {
    		var e = evt ? evt:window.event?window.event:null; 
    		/* Evenement à 3 donc c'est le clique droit qui est attrapé */
    		if (e.which == 3) {
    			var elmts = document.getElementsByClassName('contextMenuDropShadow contextMenuPopup removeFocusOutline');
    			alert(elmts)
    			  for(var i=0;i<elmts.length;i++)
    			  {
    				elmts[i].style.display='block';
    			  }
    		}  
    	}
    Appel de la méthode : <body onload=" document.getElementById('menu').onmousedown = detectRightClick">,

    Ça fonctionne dans une page html standard, mais le report du JS dans l'étape du robot, ne passe pas, je ne peux pas avoir un onload... L'idéal serait de forcer ce click droit sans passer par un onclick ou onload etc...

    Auriez-vous des pistes ?

    Merci pour votre retour.

    Cdt,

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    le code que vous nous montrez est lancé quand un clic est fait par l'utilisateur. là vous voulez faire l'inverse, c'est à dire que le code dans le navigateur clique sur un bouton, c'est bien ça ?
    le code qui va faire ce clic est chargé comment ? avec une extension dans le navigateur ?

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Oui c'est bien mon problème, les essais que j'ai effectué attendent systématiquement un clic utilisateur.

    Or, c'est justement ce clic utilisateur que je souhaite "simuler" car c'est un "robot" (Dynatrace) qui exécute diverses étapes les unes à la suite des autres. Effectivement, une extension au navigateur est installée.

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    même si la balise est générée dynamiquement, vous pouvez quand même la sélectionner avec "getElementsByClassName" :
    https://developer.mozilla.org/fr/doc...ntsByClassName

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Ce n'est pas le problème. L'id de la balise div est généré dynamiquement, mais oui j'ai réussi à afficher ou masquer le div en fonction de getElementsByClassName.

    Mon principal problème c'est de simuler le clic droit utilisateur qui fait apparaître ce fameux "div".

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    Intéressant. Mais d'après l'exemple, il y a un clic utilisateur de fait pour appeler la fonction simulateClick(), or de mon côté tout doit se faire sans clic utilisateur. Mais ça me donne une piste à creuser. Merci.

  8. #8
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Salut,

    Il y a la méthode HTMLElement.click

  9. #9
    Expert éminent sénior

    Avatar de -Nikopol-
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2013
    Messages
    2 174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 2 174
    Points : 11 289
    Points
    11 289
    Billets dans le blog
    5
    Par défaut
    le mouse event 'contextmenu'
    avec un addeventlistener pour le "visualiser" ou avec un initEvent pour le simuler

Discussions similaires

  1. [XL-2013] Click droit pour selectionner dans une listbox
    Par Tenanio dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/06/2016, 17h36
  2. click droit pour copier une cellule d'une listview
    Par wahidred dans le forum VB.NET
    Réponses: 0
    Dernier message: 01/05/2012, 23h00
  3. [AC-2007] simulation de click droit et gauche
    Par mandrake_of_mandregas dans le forum VBA Access
    Réponses: 0
    Dernier message: 09/03/2012, 09h47
  4. Click droit pour selectionner
    Par Elwe31 dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/03/2008, 10h58
  5. Réponses: 11
    Dernier message: 04/01/2006, 23h57

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