Python中最佳的浏览器自动化工具是什么?
我想写一个脚本:给定一个文本文件,里面列出了要在某个网站上执行的操作,它会利用某个浏览器(可能是IE,因为我对其他可以控制的浏览器不太了解)的CSS渲染和JS执行能力,模拟用户在网站上进行这些操作。
所以我找到了这个页面,里面有“网页测试”这一部分,列出了:
- PAMIE
- PYXPCOM
- Windmill
- Selenium
最后两个需要在本地运行某种服务器(这似乎不是个好主意)。
Pamie的文档非常糟糕,网站上有很多“建设中”的页面,最后一次更新是在2006年。
而PyXPCOM似乎并不是专门为Firefox创建的。我可能是个糟糕的搜索者,但我还是没找到一个合适的例子,说明如何用PyXPCOM来操作Firefox。
对于我的需求,你会推荐哪种方式来引导浏览器,为什么呢?谢谢!
更新:
我需要能够渲染页面上的JavaScript。我想使用某个基于服务器的库可能不是个好解决方案,因为它一次只能限制一个浏览器实例,所以我不能同时将两个浏览器实例设置为两个不同的代理,而不需要建立两个服务器(这样理解对吗?)。
5 个回答
你可以试试 Win32Com,这个工具可以让你通过它的COM服务器来控制程序。如果程序没有COM服务器,你也可以让它执行一些简单的操作,比如模拟按键或者把窗口从前面移到后面再移回来。
以IE浏览器为例,因为它有COM服务器,你可以使用IE的Python对象中的功能,让它在表单中填写内容、勾选复选框、下载文件,几乎可以做你能想到的所有事情。
我建议你再看看Selenium……这正是你想要做的。你需要在浏览器中真正显示页面,还是只是模拟一下导航和点击呢?
Mechanize可以让你进行有状态的编程式网页浏览,可能正是你需要的东西。
你可以通过pywin32来使用autoit的COM对象。
另外一个选择是使用selenium 2(也叫webdriver)的Python绑定。