Могу ли я использовать XPCOM для создания и управления окном Firefox, как я бы использовал win32 COM с IE? - PullRequest
1 голос
/ 18 февраля 2010

С win32 COM я создаю экземпляр Internet Explorer и почти полностью управляю им из своего кода на python (манипулирую окнами, элементами DOM и т. Д.).В частности, используя DispatchEx («InternetExplorer.Application»).Могу ли я сделать то же самое, используя XPCOM и C ++ / python?

Мне нужно автоматизировать определенные действия, предпринимаемые над html-интерфейсом некоторых веб-сайтов, поэтому я не могу использовать urllib и не могу использовать селен, потому чтоон не работает с междоменными URL.Я написал класс-обертку для Internet Explore, где я могу создать окно браузера и делать с ним что угодно, но я бы хотел сделать то же самое и с Firefox.Я думал о создании приложения XUL, которое предоставляет функциональность DOM через tcp-сервер, написанный на XUL / js.Я даже не уверен, что это возможно, но если я смогу сделать все из своего кода на Python без внешнего запуска xulrunner, гораздо лучше.

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

Я использовал nsIDOMXULElement для подключения прослушивателей событий в моем коде XPCOM C ++.Я не пробовал изменять пользовательский интерфейс, но он, вероятно, также будет работать.

Для примера того, как получить элемент nsIDOMXULE, посмотрите на вызов SetVideoWindow в коде Songbird здесь .

1 голос
/ 18 февраля 2010

Я не знаю о программном создании и управлении полными экземплярами Firefox, но Mozilla определенно может быть встроена с использованием XPCOM.
FAQ по встраиванию Mozilla , по встраиванию с практическими рекомендациями и обзор API по встраиванию должны помочь вам начать. Есть также другие средства для встраивания.

...