J'ai un hyperlien 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 l'hyperlien en utilisant JavaScript?
<a href="#" target="_blank" onclick="javascript:Test("Test");">MSDN</a>
Je recherche un déclencheur d'événement onClick à partir de JavaScript.
javascript
dom-events
user171523
la source
la source
for(
.METTRE À JOUR
C'était une vieille réponse. De nos jours, vous devez simplement utiliser le clic . Pour un déclenchement d'événement plus avancé, utilisez dispatchEvent .
Réponse originale
Voici ce que j'utilise: http://jsfiddle.net/mendesjuan/rHMCy/4/
Mis à jour pour fonctionner avec IE9 +
Notez que l'appel
fireEvent(inputField, 'change');
ne signifie pas qu'il modifiera réellement le champ de saisie. Le cas d'utilisation typique pour déclencher un événement de modification est lorsque vous définissez un champ par programme et que vous souhaitez que les gestionnaires d'événements soient appelés car l'appelinput.value="Something"
ne déclenchera pas d'événement de modification.la source
jQuery
ou non). Je peux fournir une aide plus significative si vous posez une nouvelle question avec le code exact que vous essayez mais ne fonctionne pas.Quoi
fait appelle exactement la
onclick
fonction del
, c'est-à-dire si vous en avez défini une avecl.onclick = myFunction;
. Si vous n'avez pas réglél.onclick
, cela ne fait rien. En revanche,simule un clic et déclenche tous les gestionnaires d'événements, qu'ils soient ajoutés avec
l.addEventHandler('click', myFunction);
, en HTML ou de toute autre manière.la source
window
objet, il n'exposera pas comme par magie unewindow.click
fonction.J'ai honte qu'il y ait tant d'applicabilité partielle incorrecte ou non divulguée.
La façon la plus simple de le faire est d'utiliser Chrome ou Opera (mes exemples utiliseront Chrome) à l'aide de la console. Entrez le code suivant dans la console (généralement sur 1 ligne):
Cela générera le résultat requis
la source
.click()
ne fonctionne pas avec Android (regardez les documents mozilla , dans la section mobile). Vous pouvez déclencher l'événement click avec cette méthode:De ce post
la source
.click()
ne fonctionne pas avec Android" En fait, le dernier tableau indique "Compatibilité inconnue".Utilisez 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 en utilisant le plugin Firefox Selenium IDE
Déclenchement manuel des événements
Pour déclencher manuellement des événements de la bonne façon, vous devrez utiliser différentes méthodes pour différents navigateurs - soit
el.dispatchEvent
ouel.fireEvent
oùel
sera votre élément d'ancrage. Je crois que ces deux nécessiteront la construction d'un objet Event pour passer.L'alternative, pas tout à fait correcte, rapide et sale serait la suivante:
la source
IE9 +
Exemple d'utilisation:
Source: https://plainjs.com/javascript/events/trigger-an-event-11/
la source
Avertissement juste:
element.onclick()
ne se comporte pas comme prévu. Il exécute uniquement le code à l'intérieuronclick="" attribute
, mais ne déclenche pas de comportement par défaut.J'ai eu un problème similaire avec le bouton radio qui n'était pas réglé sur coché, même si la
onclick
fonction personnalisée fonctionnait bien. J'ai dû ajouterradio.checked = "true";
pour le définir. Probablement la même chose et pour d'autres éléments (aprèsa.onclick()
il devrait y en avoir aussiwindow.location.href = "url";
)la source
onclick()
signifierait que l'event
objet ne sera pas défini automatiquement par le navigateur, donc les méthodes courantes commeevent.stopPropagation()
seront également indéfinies.la source