290 votes

Comment déclencher un clic sur un événement JavaScript

J'ai un lien hypertexte dans ma page. J'essaie d'automatiser un certain nombre de clics sur l'hyperlien à des fins de test. Existe-t-il un moyen de simuler 50 clics sur le lien hypertexte à l'aide de JavaScript ?

<a href="#" target="_blank" onclick="javascript:Test("Test");">MSDN</a>

Je cherche à déclencher l'événement onClick à partir du JavaScript.

9voto

NickC Points 13729

Utiliser un cadre de test

Cela pourrait être utile - http://seleniumhq.org/ - Selenium est un système de test automatisé d'applications web.

Vous pouvez créer des tests à l'aide du plugin Firefox IDE Selenium

Déclenchement manuel d'événements

Pour déclencher manuellement des événements de la bonne manière, vous devrez utiliser différentes méthodes pour différents navigateurs - soit el.dispatchEvent o el.fireEvent donde el sera votre élément d'ancrage. Je pense que ces deux éléments nécessiteront la construction d'un objet Event à transmettre.

L'autre solution, qui n'est pas tout à fait correcte mais qui est rapide et pratique, serait la suivante :

var el = document.getElementById('anchorelementid');
el.onclick(); // Not entirely correct because your event handler will be called
              // without an Event object parameter.

9voto

Fatih Hayrioğlu Points 813

IE9+

function triggerEvent(el, type){
    var e = document.createEvent('HTMLEvents');
    e.initEvent(type, false, true);
    el.dispatchEvent(e);
}

Exemple d'utilisation :

var el = document.querySelector('input[type="text"]');
triggerEvent(el, 'mousedown');

Source : https://plainjs.com/javascript/events/trigger-an-event-11/

8voto

V9D Churasia Points 1

Appelez la fonction de déclenchement n'importe où et le bouton s'enclenchera.


<a href="#" id="myBtn" title="" >Button click </a>

function trigger(){
    document.getElementById("myBtn").click();
}

1voto

Dustin Laine Points 22815

Je recommanderais l'utilisation d'un cadre de test automatisé de l'interface utilisateur tel que Sélénium

1voto

Arvigeus Points 333

Attention :

element.onclick() ne se comporte pas comme prévu. Il n'exécute que le code contenu dans onclick="" attribute mais ne déclenche pas de comportement par défaut.

J'ai eu le même problème avec un bouton radio qui ne se mettait pas sur coché, même si onclick La fonction personnalisée fonctionnait correctement. Il a fallu ajouter radio.checked = "true"; pour le régler. Il en va probablement de même pour d'autres éléments (après a.onclick() il devrait également y avoir window.location.href = "url"; )

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X