J'essaie d'exécuter des appels jQuery/Angular via WWW :: Mechanize :: Firefox eval_in_page
. Je suppose qu'il y a une sorte de problème de portée, parce que je reçois des erreurs.Comment appeler les fonctions jQuery ou Angular via WWW :: Mechanize :: Firefox?
Si je tente d'exécuter ce code:
angular.element(document.getElementsByClassName("input")[0]).triggerHandler(('change');
Je reçois cette réponse:
MozRepl::RemoteObject: ReferenceError: angular is not defined at ...
Si je tente d'exécuter ce code:
$(".input").val("Foo")
Je reçois cette réponse :
MozRepl::RemoteObject: ReferenceError: $ is not defined ...
Il semble que je n'ai accès à aucun des frameworks. La page semble avoir les deux chargés, cependant. Si j'exécute le code dans la console du navigateur, cela fonctionne très bien.
Je ne sais pas assez sur les internes de Firefox pour être sûr, mais je pense que votre problème est lié à [cette] (https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts) (et [ceci] (https://bugs.jquery.com/ticket/4151)). 'eval_in_page' s'exécute dans un sandbox qui n'a accès qu'à certaines parties du DOM (le code correspondant est [ici] (https://metacpan.org/source/CORION/WWW-Mechanize-Firefox-0.79/lib/WWW/ Mechanize/Firefox.pm # L532)). Vous pouvez peut-être charger jQuery dans le bac à sable, mais je ne suis pas sûr de savoir pourquoi ... que voulez-vous faire avec jQuery et/ou Angular? – ThisSuitIsBlackNot
J'essaye d'écrire du code pour m'interfacer avec une page web qui dépend fortement d'Angular pour le conduire. Spécifiquement, j'essaye de remplir un champ d'entrée qui n'a aucun élément d'identification ou de nom dessus. Lorsque ce champ détecte un événement de changement, il semble déclencher une fonction définie angulaire qui effectue un certain ménage. Quand il détecte un événement de flou, il convertit l'entrée textuelle en une jolie "balise" à l'intérieur d'une plage. En raison de ce ménage, je crois que je dois remplir la valeur et ensuite déclencher cette fonction. –