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); }
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')); });
Remarques supplémentaires :
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!