最近在做一些公司其他部門系統的后台模擬操作,但由於那邊的系統最開始是外包給其他公司開發的,現在那邊的開發也不知道有些post的參數是如何生成的。於是想考察下是不是可以把phantomjs這個工具給加進來避開后台的模擬操作。
做了個oschina模擬登錄的例子,找到了phantomjs的api,直接開干就行了。(在這里省略了一個步驟,就是cookie值不是js打印的,而是我直接手動登錄后提取的)
腳本如下:
var page = require('webpage').create(), system = require('system'), address; phantom.addCookie({ 'name' : 'Cookie', /* required property */ 'value' : '_reg_key_=Kg8nuWPyQFYx2IvpAIGY; oscid=2Br68t5ibgWxWhlyAo8prm7ObzjWdX6JrMNzpg7UIb7dssJPFnC5bw0ELoIA9aEqGCtLQZk', 'size' :142 }); if (system.args.length === 1) { phantom.exit(1); } else { address = system.args[1]; page.open(address, function (status) { console.log(page.content); phantom.exit(); }); }
驗證一下腳本:
sh-3.2# phantomjs test.js http://my.oschina.net/rasine/blog/333056
打印的內容顯示登錄成功。