使用Python脚本对当前操作界面进行截图
1、从网上下载phantomjs,解压到任意目录,并将包含phantomjs.exe的目录添加到系统路径就可以用了。
1、在phantom运行时,会向当前代码运行环境注入phantom对象,它的功能是定义和控制phantom运行环境的参数和流程。
phantomjs执行具体的文件方式:

2、获取传给本JS程序参数有两种方式:

3、phantomjs ./test.js http://xxx 这句语句,通过phantom.args ,我们能得到的参数列表为 ["http://xxx"] ,而通过 system.args 则得到 ["./test.js", "http://xxx"] 这样的参数列表。差异就在于是否包含当前脚本名称。
4、通过 phantom.scriptName 这个API可直接获取脚本名称。
退出程序,可以设置一个退出代码,默认是0。

1、web page模块的功能是处理具体的页面。使用时需要引入模块,并创建实例:

2、页面内容相关的API
page.content String:获取或设置当前页面的html。
page.url String:只读,获取当前页面的url。

3、对于page打开的页面,往往需要与其进行一些交互。 page.evaluate() 提供了在page打开页面的上下文执行function的功能。如下例:

4、page.evaluate() 接受两个参数,第一个是必需的,表示需要在page上下文运行的函数 fn ;第二个是可选的,表示需要传给 fn 的参数 param 。对于整个phantom进程而言, page.evaluate()是跑在一个沙盒中, fn 无法访问一切phantom域中的变量;同样 page.evaluate() 方法外部也不应该尝试访问page上下文中的内容。如果两个作用域需要交换一些数据,只能依靠param 和 return 。
5、page.render() 能够把当前页面渲染成图片并输出到指定文件中。输出的文件格式由传入的文件扩展名决定,目前支持 PNG 、 JPEG 、 GIF 、 PDF 。

1、使浏览器足够大,这样底部就显示了,可以设置viewPortSize很大:page.viewportSize = {width: 4800,height: 8000};
2、通过BOM方法操作滚动条,可以把滚动条滚动到一个很大的值,使页面展示完整,如:window.scrollTo(0,10000);
3、滚动到适应的高度:window.document.body.scrollTop = document.body.scrollHeight;
4、页面请求的资源,如图片、异步cgi、js等,返回的时间以及执行的长短都是不确定的,如果截图过早,可能很多空白区域,因此需要定时截图,在打开页面后,使用setTimeout来延迟截图:
