1

使用 win32 COM,我创建了一个 Internet Explorer 实例并几乎完全通过我的 python 代码控制它(操作窗口、DOM 元素等)。更具体地说,使用 DispatchEx('InternetExplorer.Application')。我可以使用 XPCOM 和 C++/python 做同样的事情吗?

我需要自动化在某些网站的 html ui 上执行的某些操作,所以不,我不能使用 urllib 也不能使用 selenium,因为它不适用于跨域 url。我为 Internet Explorer 编写了一个包装类,我可以在其中创建一个浏览器窗口并用它做任何事情,但我也想用 firefox 做同样的事情。我考虑过创建一个 XUL 应用程序,该应用程序通过用 XUL/js 编写的 tcp 服务器公开 DOM 功能。我什至不确定这是否可能,但如果我可以从我的 python 代码中完成所有操作,而无需在外部运行 xulrunner,那就更好了。

4

2 回答 2

1

我不知道以编程方式创建和控制完整的 Firefox 实例,但 Mozilla 绝对可以使用 XPCOM 嵌入。Mozilla 嵌入常见问题解答
嵌入方法嵌入 API 概述应该可以帮助您入门。还有其他嵌入方式。

于 2010-02-18T18:44:20.503 回答
1

我已使用nsIDOMXULElement在我的 XPCOM C++ 代码中附加事件侦听器。我还没有尝试修改 UI,但它可能也会起作用。

有关如何获取 nsIDOMXULElement 的示例,请查看此处Songbird 代码中的调用“SetVideoWindow” 。

于 2010-03-31T21:04:46.903 回答