Maison > interface Web > js tutoriel > Comment simuler des clics sur des éléments (par exemple, des spans) à l'aide de PhantomJS ?

Comment simuler des clics sur des éléments (par exemple, des spans) à l'aide de PhantomJS ?

Susan Sarandon
Libérer: 2024-12-07 15:10:16
original
421 Les gens l'ont consulté

How to Simulate Clicks on Elements (e.g., Spans) Using PhantomJS?

PhantomJS : simulation de clics sur des éléments

Contexte :

Lorsque vous essayez de cliquer sur un élément à l'aide Avec la fonction page.evaluate de PhantomJS, vous pouvez rencontrer une erreur liée à l'invocation d'undéfini en tant que fonction. Cela se produit lorsque l'élément cible est un span plutôt qu'un bouton de saisie natif.

Solution :

Pour résoudre ce problème et simuler un clic sur un élément arbitraire, utilisez la fonction personnalisée suivante :

function click(el){
    var ev = document.createEvent("MouseEvent");
    ev.initMouseEvent(
        "click",
        true /* bubble */, true /* cancelable */,
        window, null,
        0, 0, 0, 0, /* coordinates */
        false, false, false, false, /* modifier keys */
        0 /*left*/, null
    );
    el.dispatchEvent(ev);
}
Copier après la connexion

Cette fonction crée un événement de clic de souris synthétique et le distribue à l'élément spécifié. En l'utilisant conjointement avec page.evaluate, vous pouvez simuler efficacement l'action de clic :

page.evaluate(function() {
    click(document.getElementById('idButtonSpan'));  
});
Copier après la connexion

Remarques supplémentaires :

  • Assurez-vous que l'élément à sur lequel on clique est accessible via JavaScript et se trouve dans le DOM lorsque la fonction page.evaluate est exécutée.
  • Cette approche fournit une méthode fiable pour simuler des clics sur des éléments qui peuvent ne pas répondre aux fonctions de clic standard, tels que des étendues qui agissent comme des boutons.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal