2010-01-22 8 views
2

Je veux faire de l'automatisation du navigateur, et ces boîtes de confirmation/d'alerte sont vraiment pénibles. Désactiver javascript complètement dans ce cas n'est malheureusement pas une option. Eh bien, je me demandais, puis-je simplement changer la définition de ces méthodes comme vu par l'interpréteur javascript de mon navigateur pour ne rien faire et revenir vrai? Notez que je sais de les redéfinir directement dans le code Javascript, par ex. mettrepuis-je redéfinir/redéfinir les fonctions Javascript "globales", comme confirm() et alert()?

function alert(message) 
{ 
    return true; 
} 

Mais AFAIK cela n'est pas une approche viable pour cette situation parce que lorsque je fais l'automatisation du navigateur, je dois travailler avec Javascript d'autres personnes. De plus, mon programme commence réellement à manipuler ces sites Web dès que la page est entièrement chargée dans le navigateur, donc je ne peux pas d'abord réécrire automatiquement le javascript, puis charger la page. Eh bien, je me demandais si je pouvais simplement modifier "de manière permanente" la manière dont les alertes/confirmations sont implémentées et exécutées dans mon navigateur. Un peu comme l'équivalent de l'injection de DLL et ainsi de suite dans le domaine des applications Windows.

+0

Quel navigateur automatisez vous? par exemple. pour Firefox GreaseMonkey serait un moyen d'injecter du code de remplacement de fonction dans chaque page. – bobince

+0

c'est Internet Explorer - le contrôle du navigateur placé sur une application Windows. – EndangeringSpecies

Répondre

1

Oui, cela peut être fait. Essayez cette thread

+0

J'ai déjà mentionné cette approche dans mon post original. Cela ne fonctionne pas parce que je ne suis pas le gars qui exécute le serveur et que je ne peux pas insérer de nouveau code dans les fichiers Javascript du serveur. Je suis le gars qui fait l'automatisation du navigateur, et mon navigateur finit par charger le javascript fourni par le site. – EndangeringSpecies

0

ce travail sur le chrome 10, ff 4, MSIE 8 (en utilisant jquery par souci de concision)

window.alert = function(x) { 
    $('<pre>',{text:x}).appendTo('body'); 
    } 
Questions connexes