如何从OSX上的脚本远程控制Firefox

时间:2009-04-14 04:24:38

标签: firefox browser-automation

我需要编写一些访问某些网站的脚本。命令行中的脚本会获取一些页面,发布一些表单,屏幕上的一些信息等等。

它不可能真的像libwww-perl这样的库“浏览器”,因为某些步骤可能需要用户交互(验证码,仅限ajax的表单,任何交互惊喜等)。

我能想到的最实用的方法是在Firefox中远程打开一个标签,并将Javascript注入其中,这有点像Greasemonkey和Selenium所做的。它不一定是Firefox,如果更容易,可以是不同的浏览器。

那么最好的方法是什么?

4 个答案:

答案 0 :(得分:3)

您考虑过Selenium Remote Control了吗?我以前使用该工具自动进行浏览器交互,它运行良好,提供了很大的灵活性

根据您的具体需求,您可以利用Selenium IDE这是一个易于使用的Firefox插件,可以轻松编写脚本。

答案 1 :(得分:2)

您可以使用XPCOM以各种可想象的方式扩展Firefox。您可以编写某种与另一个进程连接的接口。

答案 2 :(得分:1)

我不确定“最好”的方法是什么,但有一种可能性就是使用AppleScript来完成工作。但是,Firefox没有广泛的脚本功能 - 如果您愿意使用Safari,可以使用AppleScript命令将JavaScript代码注入文档(do JavaScript命令 - 在Safari的脚本字典中查找,可从脚本编辑器中获取。)

此外,要从命令行运行AppleScripts,请使用osascript

osascript path/to/script.scpt

答案 3 :(得分:0)

要在OS X上编写脚本,我会推荐两种方式,而且它们都是ruby。第一个是Watir,它是一个自动测试框架,可以控制Mac OS x上的firefox和safari。

另一种更好的屏幕抓取方法是使用hpricot这是一个非常容易使用的HTML解析器。

在后台,Watir使用JSSh - a TCP/IP JavaScript Shell Server for Firefox来做到这一点。 JSSH允许您通过telnet会话控制浏览器。

无论你走哪条路,如果它们都能捕获它们,它们会阻止你。这是他们的全部观点: - )