无需浏览器的 Web 测试
页面访问自动化
屏幕捕获
网络监控.
之前的例子中我们已经初步认识了phantom对象。它的功能是定义和控制phantom运行环境的参数和流程。关键的API有:
phantom.args String[]
获取传给本JS程序的参数,需要与 system.args 进行区分(system模块详见下文),后者表示传给phantomjs引擎的参数。例如 phantomjs ./test.js http://baidu.com 这句语句,通过 phantom.args ,我们能得到的参数列表为[http://baidu.com] ,而通过 system.args 则得到 [./test.js, http://baidu.com] 这样的参数列表。差异就在于是否包含当前脚本名称。不过 phantom.scriptName 这个API提供了获取脚本名称的功能。
phantom.cookies Object[]
获取或设置cookies,不过对于设置建议使用其他的API完成。同时相关的API还有:
phantom.addCookie(Object) Boolean:添加cookie值
phantom.deleteCookie(cookieName) Boolean:删除指定Cookie值
phantom.clearCookies() :清空所有的cookie
phantom.cookiesEnabled Boolean:获取或设置是否支持cookie
phantom.injectJs(fileName) Boolean:
把指定的外部JS文件注入到当前环境。执行这个方法时,phantomjs首先会从当前目录检索此文件,如果找不到,则再到 phantom.libraryPath 指定的路径寻找。 phantom.libraryPath 这个API基本上就是为 phantom.injectJs() 服务的。
phantom.onError
当页面存在js错误,且没有被 page.onError 处理,则会被此handler捕获。下面是使用此API的一个例子。由于phantom环境下代码调试很困难,了解这些错误捕获的API也许会对我们的实际使用有所帮助。
phantom.exit(returnValue)
这个API已经见过多次了,它的作用是退出程序,可以设置一个退出代码,默认是0。
哥斯达黎加对日本谁会赢