2010-02-18 19 views
1

Avec win32 COM, je crée une instance d'Internet Explorer et la contrôle presque entièrement à partir de mon code python (manipuler des fenêtres, des éléments DOM, etc.). Plus précisément, en utilisant DispatchEx ('InternetExplorer.Application'). Est-ce que je peux faire la même chose en utilisant XPCOM et C++/python?Puis-je utiliser XPCOM pour créer et manipuler une fenêtre Firefox comme j'utiliserais win32 COM avec IE?

J'ai besoin d'automatiser certaines actions effectuées sur l'interface utilisateur html de certains sites Web, donc je ne peux pas utiliser urllib et je ne peux pas utiliser sélénium, car il ne fonctionne pas avec les URL interdomaines. J'ai écrit une classe wrapper pour Internet Explorer où je peux créer une fenêtre de navigateur et faire n'importe quoi avec elle, mais je voudrais faire la même chose avec Firefox. J'ai pensé à créer une application XUL qui expose la fonctionnalité DOM via un serveur tcp écrit en XUL/js. Je ne suis même pas sûr que ce soit possible, mais si je peux tout faire à partir de mon code python sans exécuter xulrunner en externe, c'est bien mieux.

Répondre

1

J'ai utilisé le nsIDOMXULElement pour attacher des écouteurs d'événement dans mon code XPCOM C++. Je n'ai pas essayé de modifier l'interface utilisateur, mais cela fonctionnera probablement aussi.

Pour un exemple sur la façon d'obtenir un nsIDOMXULElement regardez l'appel "SetVideoWindow" dans le code de Songbird here.